home *** CD-ROM | disk | FTP | other *** search
/ EuroCD 3 / EuroCD 3.iso / Communication / Citadel_BBS / Docs / install3.man < prev    next >
Text File  |  1998-06-24  |  168KB  |  4,038 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.                            C I T A D E L - 8 6
  15.  
  16.                                   V3.40
  17.  
  18.                            INSTALLATION MANUAL
  19.   
  20.                           Copyright 1989 - 1991
  21.  
  22.                                by Hue, Jr.
  23.  
  24.                          C-86 Test System Sysop
  25.  
  26.                             (612) 470-9635
  27.  
  28.                                 91Oct07
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.                          Table of Contents
  75.  
  76.      I. Introduction & Requirements  . . . . . . . . . . . . . . . .  2
  77.         I.1 ... but first, a caveat. . . . . . . . . . . . . . . . .  2
  78.         I.2 Introduction . . . . . . . . . . . . . . . . . . . . . .  2
  79.         I.3 Requirements . . . . . . . . . . . . . . . . . . . . . .  3
  80.      II. Installation  . . . . . . . . . . . . . . . . . . . . . . .  4
  81.          II.1 Tickling DOS configurations  . . . . . . . . . . . . .  4
  82.          II.2 Making your modem do the right thing . . . . . . . . .  4
  83.          II.3 Citadel-86 Operating Procedures
  84.                          (and other epic fantasies)  . . . . . . . .  5
  85.               II.3.a Who's this masked Temporary file, anyways?  . .  6
  86.          II.3 (con't)  . . . . . . . . . . . . . . . . . . . . . . .  6
  87.          II.4 Other Data Files . . . . . . . . . . . . . . . . . . .  7
  88.          II.5 EASE . . . . . . . . . . . . . . . . . . . . . . . . .  8
  89.          II.6 The ole' configuration file  . . . . . . . . . . . . .  8
  90.               II.6.a But first, a word on moral values ... . . . . .  9
  91.               II.6.b Section 1 of CtdlCnfg.Sys . . . . . . . . . . . 10
  92.                 Part 1 of Section 1: Meaningless Miscellanea . . . . 10
  93.                 Part 2 of Section 1: Required Odd Stuff  . . . . . . 12
  94.                 Part 3 of Section 1: Data File Sizes . . . . . . . . 13
  95.                 Part 4 of Section 1: Data File Locations . . . . . . 14
  96.                 Part 5 of Section 1: Policy Options  . . . . . . . . 15
  97.                 Part 6 of Section 1: Modem Handling  . . . . . . . . 18
  98.                 Part 7 Video Options   . . . . . . . . . . . . . . . 22
  99.               II.6.c Section 2 of CtdlCnfg.Sys . . . . . . . . . . . 22
  100.               II.6.d Section 3 of CtdlCnfg.Sys . . . . . . . . . . . 32
  101.          II.7 The Big Step -- Your first experience with CONFG . . . 36
  102.          II.8 CTDL -- That Childhood Experience  . . . . . . . . . . 37
  103.          II.9 When the inevitable happens  . . . . . . . . . . . . . 38
  104.          II.10 Installation -- Advanced Topics . . . . . . . . . . . 38
  105.               II.10.a Command Line options . . . . . . . . . . . . . 38
  106.               II.10.b BAT files and program termination ERRORLEVELS. 40
  107.               II.10.c Making BAT files and command line options
  108.                                                      work for you  . 41
  109.               II.10.d Result Code and Call Progress Detection  . . . 43
  110.               II.10.d.1 Restrictions on Result Codes . . . . . . . . 46
  111.               II.10.e Extreme options in CtdlCnfg.Sys  . . . . . . . 46
  112.      III. Zenith Z-100 Notes . . . . . . . . . . . . . . . . . . . . 48
  113.               III.1 Introduction . . . . . . . . . . . . . . . . . . 48
  114.               III.2 Scary but Innocuous Behaviors  . . . . . . . . . 48
  115.               III.3 Result Codes . . . . . . . . . . . . . . . . . . 48
  116.  
  117.      Appendix -- Exhibit copy of CtdlCnfg.Sys. . . . . . . . . . . . 50
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.                                     -1-
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.      I. Introduction & Requirements
  138.         Hi.  This is the Citadel-86 Installation Manual.  This manual comes in
  139.      three parts.  In the first part we hope to present a very short intro-
  140.      duction to Citadel-86 and give you an idea of the requirements of running
  141.      Citadel-86.
  142.  
  143.         The second part of the Manual will contain a comprehensive (we hope!)
  144.      discussion of general operation of Citadel-86 and a step-by-step
  145.      installation guide.
  146.  
  147.         The third section contains notes specific to the Zenith Z-100, as
  148.      contributed by both the author of this manual and System Operators
  149.      using Z-100s as their hardware platform.
  150.  
  151.         If you are looking for documentation covering the day to day operations
  152.      of Citadel-86, please read OPER3.MAN.  Just ignore the blood spots
  153.      in there ...
  154.  
  155.      I.1 ... but first, a caveat.
  156.         Citadel-86 has a number of eccentricities in it; in fact, some people
  157.      might describe it as one giant eccentricity, and an explanation is,
  158.      perhaps, in order.  One of the authors of this manual, Hue, Jr., is also
  159.      the principal porter and caretaker of Citadel-86.  Citadel-86 derives
  160.      directly from the version 2.10 of Citadel written by Cynbe ru Taren for
  161.      CP/M, and contains a number of the apparent oddities that originally
  162.      appeared in Cynbe's code.  Hue, Jr., feeling there may have been
  163.      certain reasons in Cynbe's mind for what he did, has been somewhat loathe
  164.      to change how certain things worked.  This may indicate a certain lack of
  165.      ambition on his part; if so, so be it.  Whatever the case, he has chosen
  166.      to leave them in, due to his faith in Cynbe knowing what he was doing.
  167.  
  168.      I.2 Introduction
  169.         Citadel-86 is part of a growing family of BBSes characterized as
  170.      "room-based" systems.  These systems are excellent messaging systems in
  171.      which the message base is partitioned into various 'areas', enhancing the
  172.      focus of the topics on the installation (if well-managed); the areas are
  173.      usually termed 'rooms' in order to provide a highly familiar metaphor for
  174.      the common user.
  175.  
  176.         Some room-based systems have an additional structure added on to them,
  177.      known sometimes as 'hallways' or 'floors', which give addition focus.
  178.      Citadel-86 has a 'floor' capability, which is optionally available to the
  179.      users.  Floors allow the sysop and aides to partition the collection of
  180.      rooms into 'subject floors' (or 'topical floors'), so rooms may be
  181.      grouped as needed.
  182.  
  183.         Room-based systems normally feature an extremely streamlined set of
  184.      commands, in which those used the most often are mnemonic 'single-stroke'
  185.      commands whereby the user supplies the first letter of the command to
  186.      execute and the system provides the rest of the command.  The speed
  187.      and ease-of-use of such a command set, in conjunction with the room
  188.      concept, has combined to make room based systems extremely popular and
  189.      heavily used in several sections of the United States.
  190.  
  191.         Citadel-86 also has file upload and download abilities, integrated
  192.      with the room metaphor, and a network capability.
  193.  
  194.  
  195.  
  196.                                     -2-
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.      I.3 Requirements
  204.         There are a number of requirements connected with running a Citadel-86
  205.      system. The most important one, though, is perhaps the most ignored, and 
  206.      that is experience with Citadel-86 or similar BBS software from a user
  207.      standpoint.  It can't be stressed enough that you should have at least a
  208.      month of day-to-day experience with Citadel-86 as a normal user, learning
  209.      the various commands relating to messages and files, and in general
  210.      becoming not only familiar, but comfortable with the Citadel-86 style of
  211.      bbsing before descending into sysopdom.
  212.  
  213.         More formally, Citadel-86 is capable of running on two classes of
  214.      machine.  The first is the Zenith Z-100, an 8085/8088 machine.  The
  215.      second category contains the IBM PCs, ATs, and close clones (note
  216.      a Z-100 does NOT constitute a close clone, although it is supported).
  217.      These two classes are similar enough that we do not need to discuss the
  218.      requirements for each class separately.  However, please note the
  219.      two different machines require different executable files (unlike earlier
  220.      versions of Citadel-86).
  221.  
  222.       o Operating System: PC- or MS- DOS 2.x or 3.x is required.  While not
  223.         every single version of DOS between 2.x and 3.x range has been
  224.         tested with Citadel-86, we have not had any reports of problems with
  225.         those versions of DOS.  Version 1.x of MSDOS is a NO NO!
  226.  
  227.       o RAM: We suggest at least 350K RAM be made available to Citadel-86.
  228.         This is in addition to RAM for MS-DOS, TSR programs, etc.
  229.  
  230.       o Disk storage: A hard disk is, naturally, highly desirable.  However,
  231.         you can run Citadel-86 on a two floppy system, but if you must do so,
  232.         you should also try to make sure you can have a relatively large
  233.         RAM disk available; due to Citadel-86's structure, disk access is
  234.         quite frequent.  While hard drives (and RAM drives!) do not mind
  235.         frequent disk accesses, floppy drives have been known to burn out
  236.         under constant usage unless certain options concerning RAM drives
  237.         are taken advantage of within Citadel-86.
  238.  
  239.       o An auto-answer modem and the hardware (cables, etc.) requisite to hook
  240.         it up to your computer:  While a Hayes or compatible is by far the most
  241.         popular modem in usage, Citadel-86 can be configured to use several
  242.         other types of modems.
  243.  
  244.       o A copy of the Citadel-86 software:  Typically, Citadel-86 comes in the
  245.         form of three archives.  The first is called RUNTIME.LZH, and is
  246.         absolutely necessary.  It contains the required executables to bring
  247.         Citadel-86 up, various help files, and a configuration file.  The
  248.         second is called SUPPORT.LZH, and contains what little documentation is
  249.         available for Citadel-86.  It is not strictly necessary, but
  250.         useful (or at least comforting).  The third is called UTIL.LZH (and
  251.         sometimes comes as two archives), and contains the utilities available
  252.         for Citadel-86.  (If you don't have these, they may possibly be on Test
  253.         System in a room called Necessities].)
  254.  
  255.       o Some patience!
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.                                     -3-
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.      II. INSTALLATION
  270.         In this section we explore the installation procedure for Citadel-86,
  271.      investigating territory ranging from a general overview of the operating
  272.      procedures of Citadel-86 to the details of setting up a system.
  273.  
  274.         We'll begin with a very short section on DOS and modem configuration. 
  275.      Then we get to the red, raw meat of Citadel-86: a description of how to
  276.      prepare and operate Citadel-86, and a discussion of the data files
  277.      Citadel-86 needs or generates.  Next will be a walk-through of actually
  278.      setting up a basic Citadel-86 installation, at the end of which you should
  279.      have a working Citadel-86 system.
  280.  
  281.         Easy, right?
  282.  
  283.      II.1 Tickling DOS configurations
  284.         First comes the only required DOS configuration you must perform.  You
  285.      must place the line "FILES=20" in your CONFIG.SYS file on your boot disk.
  286.      If such a line already exists (or more than 20 is specified),
  287.      then you don't need to worry about anything.  If such a line doesn't
  288.      exist, then please put it into CONFIG.SYS, save the file, and reboot your
  289.      system so it'll take effect.  IF YOU DON'T, CITADEL WILL BE VERY PEEVISH!
  290.  
  291.         If you don't understand what we're gabbing about, then please consult
  292.      your DOS manuals.  CONFIG.SYS is an important part of the DOS system; it
  293.      will do you good to learn what it's about.
  294.  
  295.         We AREN'T going to discuss DOS batch files in here.  We'll leave that
  296.      for a later advanced section, because Citadel-86 exits with different
  297.      ERRORLEVELs; the exact levels vary with the reason Citadel-86 exited.
  298.      We feel it would be better not to cause excess confusion now, because
  299.      you'll be confused soon enough as it is.
  300.  
  301.         We AREN'T going to discuss Citadel-86 command line parameters here,
  302.      either.  While such things exist, we deem these to be the subject of an
  303.      advanced section, and so we leave them for later attention in this manual.
  304.  
  305.      II.2  Making your modem do the right thing
  306.         The Citadel-86 basic requirements in the area of modems are:
  307.  
  308.       o Modem can be hooked up to the computer
  309.       o Modem can auto-answer the phone
  310.       o Modem supports true carrier detect (very preferably on pin 8)
  311.       o Modem can be hung up
  312.  
  313.         That sounds pretty darn basic, and it is.  However, if you want to take
  314.      advantage of some of the default configurations of Citadel-86 for the
  315.      modem, here's what we suggest for your modem in terms of characteristics:
  316.  
  317.       o Hayes or (semi) compatible
  318.  
  319.      or
  320.  
  321.       o Carrier detect on pin 8 (normal for most modems)
  322.       o Carrier hangs up modem when DTR is dropped
  323.  
  324.  
  325.  
  326.  
  327.  
  328.                                     -4-
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.         Like we said, Citadel-86 is not restricted to Hayes/compatible
  336.      modems, although they are of course the most popular modem used.  But
  337.      other modems, such as TransModems, have been used successfully with 
  338.      Citadel-86. This makes our job, as the manual writers, substantially 
  339.      more difficult. Due to the overwhelming popularity of the Hayes compatible
  340.      modems, we're going to confine most of our advice on modem configuration
  341.      to Hayes and compatibles.
  342.  
  343.         The first thing to bear in mind is "compatible" is often a
  344.      slippery term.  Our advice is based on our own experience with our Hayes 
  345.      compatible modems; if what we say doesn't seem to jibe with your modem's
  346.      documentation, then use a little imagination and search the manuals.
  347.  
  348.         Hayes modems are not normally correctly configured fresh from the
  349.      factory, so you must configure yours.  Usually, a combination of two
  350.      methods are used to achieve the correct configuration.  First, DIP
  351.      switches on the modem usually control several different functions,
  352.      including auto-answer mode.  However, on some Hayes compatibles they
  353.      don't exist; the functions they usually serve are then either accessed
  354.      via software, or not at all. Second, (as you might have guessed), software
  355.      can be used to configure the modem, through the use of AT commands.
  356.  
  357.         We strongly suggest you have your modem manual available at this
  358.      point.
  359.  
  360.         First, you want to make sure your modem will drop carrier when DTR
  361.      is dropped; the opposite of this is sometimes called the "forced DTR"
  362.      function, and can be found in the DIP switches.  Make sure the modem
  363.      does not have "forced DTR" on.
  364.  
  365.         Next, you need to ensure the modem is not "forcing carrier
  366.      detect". Instead, it should only have carrier detect true when there is
  367.      actually a caller online; otherwise your Citadel-86 will not work
  368.      correctly.
  369.  
  370.         Finally, you want to make sure the modem will auto-answer when
  371.      Citadel-86 is up.  This can be selected either by DIP switch or through
  372.      software.  If you have a modem with a DIP switch controlling this
  373.      function, you may want to use software instead, for finer control of
  374.      how your modem acts.  You'll find later in this manual you can
  375.      specify a string of commands to be sent to the modem when Citadel-86 first
  376.      comes up, which you can use to activate auto-answer mode.
  377.  
  378.         The above comments apply equally well to non-Hayes compatible modems,
  379.      although the details of how to initialize the modem will differ greatly.
  380.  
  381.         More detail on initialization of the modem will appear later in this
  382.      manual in Section II.6.b: Part 6 of Section 1: MODEM HANDLING.
  383.  
  384.      II.3 Citadel-86 Operating Procedures (and other epic fantasies)
  385.         Citadel-86 comes with a whole mess of files.  However, only three of
  386.      these files are important, because they constitute the beginnings and
  387.      necessities of Citadel-86.  They are:
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.                                     -5-
  395.  
  396.  
  397.  
  398.       o CtdlCnfg.Sys.  This file will contain your description of how you want
  399.         your system set up.  Decisions concerning the location of important
  400.         data files, system policies, and other semi-arcane things are described
  401.         for Citadel-86's use.  The CtdlCnfg.Sys accompanying your system is a
  402.         template of a very generic system, and we plan to guide you through it
  403.         later in this manual.
  404.  
  405.       o CONFG.EXE.  This executable program digests CtdlCnfg.Sys, converting
  406.         the information contained therein into a form far easier to
  407.         digest by computer programs.  It is also responsible for generating new
  408.         data files when necessary (typically only when a new system is first
  409.         built!) and analyzing old data files.  It produces a highly temporary
  410.         yet necessary file called CTDLTABL.SYS.
  411.  
  412.       o CTDL.EXE.  This is the main executable program of Citadel-86.  It
  413.         expects to find CTDLTABL.SYS (remember the name?).  If it finds it, it
  414.         reads it, erases it, and then continues to try to bring up the rest of
  415.         the system, using the information it found in CTDLTABL.SYS.  If
  416.         there are no severe abnormalities during CTDL.EXE's use, it will write
  417.         a new version of CTDLTABL.SYS for use the next time you bring up
  418.         CTDL.EXE.
  419.  
  420.      II.3.a Who's this masked Temporary file, anyways?
  421.         CTDLTABL.SYS has been passed off so far as a temporary file, generated
  422.      by CONFG.EXE from digesting CtdlCnfg.Sys, and required by CTDL.EXE.
  423.      However, for a mere temporary file it merits more discussion.  We said
  424.      CTDL.EXE expects to find it; you may have figured out if it's
  425.      not there, then CTDL.EXE won't function properly.  This is correct, and
  426.      the proper corrective action is to run CONFG.EXE.  DON'T TRY TO USE AN OLD
  427.      VERSION OF CTDLTABL.SYS THAT YOU MAY HAVE SAVED IN CASE OF A CRASH!  Yes,
  428.      we know running CONFG.EXE to generate a new CTDLTABL.SYS can take a
  429.      while if you're running a big system.  We mentioned CONFG.EXE
  430.      analyzes data files; as it happens, the results of this analysis is
  431.      also placed in CTDLTABL.SYS, and used to enhance access to various parts
  432.      of Citadel-86, such as the log.
  433.  
  434.         If you use an old version of CTDLTABL.SYS, the older information can
  435.      cause Citadel-86 to look for messages that no longer exist, lose track of
  436.      new rooms and log accounts, and other behaviors a sysop generally
  437.      finds disruptive to domestic tranquility.  So, really, "Just say no."  Run
  438.      CONFG.EXE if you lose your current CTDLTABL.SYS through a crash or power
  439.      loss.  (This can be automated.  See section II.9 for advice on
  440.      batch files.)
  441.  
  442.      II.3 (con't)
  443.          Back to the subject.  We now know the purposes of the three primary
  444.      files of Citadel-86.  CtdlCnfg.Sys contains information only the
  445.      sysop can supply; CONFG.EXE processes CtdlCnfg.Sys, producing CTDLTABL.SYS
  446.      and other data files; CTDL.EXE requires CTDLTABL.SYS, and constitutes
  447.      the main executable of Citadel-86.
  448.  
  449.          So, in short form, here's how you run Citadel-86:
  450.  
  451.       o Modify CtdlCnfg.Sys to taste.
  452.       o Run CONFG.EXE.
  453.       o Run CTDL.EXE as many times as desired, as long as each run is
  454.         terminated normally.
  455.  
  456.         If you crash, either from a fatal bug or power loss or whatever, just
  457.      run CONFG.EXE again.
  458.  
  459.  
  460.                                     -6-
  461.  
  462.  
  463.  
  464.  
  465.  
  466.      II.4 Other Data Files
  467.         When you run CONFG.EXE for the first time, a number of data files are
  468.      created, and they're what we're going to talk about in this section. 
  469.      These files contain the information -- accounts, rooms, messages, and
  470.      other things -- making up any BBS.  The capacities of these files are
  471.      selectable by the sysop, and once selected they remain the same size as
  472.      CTDL.EXE runs (don't panic, though -- they can be changed through the use
  473.      of Citadel-86 utilities!).  And with no more delay....
  474.  
  475.       o CTDLMSG.SYS.   This file contains all the messages in the system.
  476.       o CTDLROOM.SYS.  This file contains information about the rooms in your
  477.                        system.  The size of this file is given later in this
  478.                        manual.
  479.       o CTDLLOG.SYS.   This file contains all the accounts for users on your
  480.                        system.  The size of this file is given later in this
  481.                        manual.
  482.       o CTDLNET.SYS.   This file, if it exists, will be 0 bytes long when
  483.                        initially generated by CONFG.EXE, and will grow as
  484.                        the network grows (NETWORK3.MAN talks about C86Net).
  485.       o CTDLFLR.SYS.   This file contains information about the floors in your
  486.                        system.  It grows as you add floors to your system.
  487.                        Don't panic, though.  Each floor only takes 21 bytes.
  488.  
  489.         These, however, are not the only data files associated with Citadel-86.
  490.      CTDL.EXE may, on occasion, generate data files also.  These files, unlike
  491.      those generated by CONFG.EXE, are not static; however, they are almost
  492.      always very small.
  493.  
  494.       o CTDLARCH.SYS.  This file contains data about auto-archiving of rooms
  495.                        (an advanced topic covered in OPER3.MAN.)
  496.       o CTDLNET.SYS.   This file, created by CONFG.EXE, will be expanded by
  497.                        CTDL.EXE if you are participating in a network.
  498.       o CALLLOG.SYS.   This file, an optional text file, is updated as each
  499.                        caller hangs up.  See #AUDITAREA.
  500.       o CTDLDIR.SYS.   This file contains data about the directory rooms on
  501.                        your system, specifically the name of the DOS directory
  502.                        associated with each directory room on your system.
  503.       o CTDLMODR.SYS   This file contains data about the room moderators on 
  504.                        your system.
  505.       o CTDLFWD.SYS    This file contains information about mail forwarding
  506.                        by individual users if you are on the net.
  507.       o FILELOG.SYS.   This file, another optional text file, is updated as
  508.                        users upload and download files. See #AUDITAREA.
  509.       o DOORUSE.SYS.   This file, another optional text file, is updated as
  510.                        users use your doors.  See #AUDITAREA.
  511.       o Net Files.     CTDL.EXE also generates a variety of small network
  512.                        files, both temporary and permanent, for internal use.
  513.                        See NETWORK3.MAN for more information on these files
  514.                        (Appendix B).
  515.  
  516.          There are also the collection of help files accompanying Citadel-86,
  517.      which we talk about in OPER3.MAN.
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.                                     -7-
  527.  
  528.  
  529.  
  530.  
  531.      II.5 EASE!
  532.         Released sometime in the last half of June, 1989, Citadel-86 Sysops
  533.      have an alternative to the normal method of both constructing a new
  534.      Citadel-86 installation and modifying the system.  This is the EASE
  535.      utility program, which should be in its own archive, EASE.LZH.
  536.  
  537.         As we indicated above, Citadel-86's description file is CtdlCnfg.Sys
  538.      which the Sysop must modify before installing a new system.  Although not
  539.      a particularly wearisome task in itself, it can still be something of
  540.      a pain to a new sysop as well as the more experienced sysop.  For this
  541.      reason, and, hey, just for the fun of it, the EASE program has been
  542.      provided.  EASE is just what it's named: it will ease both the
  543.      installation and modification processes.
  544.  
  545.         At this point we'd like to urge you to do two things if you have EASE.
  546.      First, read, perhaps swiftly, section II.6 below to get a feel for what is
  547.      in CtdlCnfg.Sys, but don't try to modify the generic CtdlCnfg.Sys, nor
  548.      should you try to initialize a new system, despite the suggestions below.
  549.      Second, copy EASE.EXE, EASE.HLP, EASE2.HLP, MODEMS, CONFG.EXE,
  550.      CtdlCnfg.Sys and CTDL.EXE into the directory in your system which will be
  551.      the home directory for your installation.  Once you have done so, simply
  552.      type EASE and follow the directions.  At the end of EASE, the system will
  553.      hopefully be initialized with a complete CtdlCnfg.Sys and most of the
  554.      data files you need, and you'll be ready to start playing -- far faster
  555.      than the traditional form of installation for Citadel-86.
  556.  
  557.         To summarize, and if you have a hard drive:
  558.  
  559.      o Make a directory on the drive where you want your Citadel-86 installation
  560.        to reside.
  561.      o CD into that directory
  562.      o Copy CONFG.EXE, CTDL.EXE, EASE.EXE, EASE.HLP, and the generic
  563.        CtdlCnfg.Sys file into the directory (or deARC, or whatever it takes
  564.        to get them into there).
  565.      o Type EASE at the command line.  Follow the directions.  Be ready to
  566.        refer to this documentation if you become confused.
  567.  
  568.         And remember.  EASE is not only for installation, but for modification
  569.      as well.  Explore!
  570.  
  571.      II.6 The ole' configuration file
  572.         So... we're done with the dull, but necessary, overview.  Now we get
  573.      down to the fun stuff, the screechy details of deciding those system
  574.      policies that can be enforced through the Citadel-86 software, where
  575.      certain data files or groups of data files will be kept on your system,
  576.      and some other details.  We do this by editing the file CtdlCnfg.Sys
  577.      mentioned earlier in this manual, so you may want to haul out your editor.
  578.  
  579.         Or you may not.  Instead, it might be better to first read through this
  580.      section along with a printout of CtdlCnfg.Sys, (we've included a copy of 
  581.      it in this file as well; see pages 35-42) comparing, taking notes,
  582.      understanding what is required and what questions you will have to answer
  583.      in order to set up your Citadel-86.
  584.  
  585.         Or -- and we recommend this -- you may wish to use EASE, the Citadel-86
  586.      installation and modification program.
  587.  
  588.  
  589.  
  590.  
  591.  
  592.                                     -8-
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.         We've decided to divide the CtdlCnfg.Sys file into four sections in
  600.      this manual.  The first section covers the utter necessities which must be
  601.      set correctly for Citadel-86 to come up, options you cannot shut off,
  602.      and some miscellaneous doodads not strictly required for a basic
  603.      system, but we'd like you to set anyway.  This first section makes up
  604.      the bulk of the CtdlCnfg.Sys parameters, and is the only one you must
  605.      fill out in order to bring up Citadel-86; the rest of the sections
  606.      contain options unnecessary for a basic Citadel-86 (although, of course,
  607.      they ARE useful!).  If you're using a 'virgin' copy of CtdlCnfg.Sys, the
  608.      options in the rest of the sections have been set to what we feel are
  609.      harmless values.
  610.  
  611.          The second section is made up of options useful, but not necessary,
  612.      for the operation of Citadel-86.
  613.  
  614.         The third section is made up of options related to Citadel-86's C86Net
  615.      support.
  616.  
  617.         The fourth section covers extremely optional parameters designed to
  618.      make modem handling very flexible when necessary.  (Don't read this
  619.      unless you have a captive, well-fed assembly-language programmer nearby.)
  620.  
  621.      II.6.a But first, a word on moral values ...
  622.         There are two methods values are set in CtdlCnfg.Sys.  One method
  623.      is related to our reference to the fourth section, above, and will
  624.      thus be covered in that advanced section.  The other method for setting
  625.      parameter values, used with the rest of CtdlCnfg.Sys, looks like this:
  626.  
  627.      #<parameter name> <parameter value>
  628.  
  629.         The '#' MUST be in the left-most column of the file in order for
  630.      CONFG.EXE to recognize it as a parameter. Indenting this line a space
  631.      provides an easy way to disable or save an old value when experimenting
  632.      and causes CONFG.EXE to ignore the line.
  633.  
  634.         A parameter value will usually either be a numerical value or a string
  635.      value, and we'll tell you for each parameter whether your selection should
  636.      be numerical or a string.  When it is numerical, always use decimal (with
  637.      the exception of the mysterious fourth section).
  638.  
  639.         String values are always enclosed in quotes.  Most string values are
  640.      used to indicate where to find certain files, but some string values are
  641.      special in that certain hard-to-express codes may need to be used in order
  642.      to accomplish something; this occurs almost exclusively when communicating
  643.      with odd modems (such as TransModems).  Therefore, certain parameter
  644.      string values in CtdlCnfg.Sys will allow formatting "directives" to be
  645.      placed within them, which will be interpreted during the execution of
  646.      CTDL.EXE to do special things.  The general format of a directive is a
  647.      backslash ('\') followed by a either a character indicating a specific
  648.      action, or a sequence of three digits representing an OCTAL value you may
  649.      need to be in this particular position to accomplish what you wish to
  650.      accomplish. Here is the list of characters that perform special actions
  651.      when following a backslash:
  652.  
  653.             n: CR-LF
  654.             t: Tab character
  655.             b: Non-destructive Backspace
  656.  
  657.  
  658.                                     -9-
  659.  
  660.  
  661.  
  662.  
  663.             r: CR
  664.             f: Formfeed
  665.             ": Put out a quote (allows quotes to appear in your strings)
  666.             \: Backslash
  667.  
  668.      So, if you wanted to insert a CR/LF into a string value, you would type
  669.  
  670.              "...\n..."
  671.  
  672.      If you needed to have the binary value of 6 in a string value, you would 
  673.      type
  674.  
  675.              "....\006...."
  676.  
  677.         Not all parameter string values accept these formatting directives;
  678.      those that don't will simply ignore them.  We have marked those parameters
  679.      accepting them both in this manual and in CtdlCnfg.Sys.  (OCTAL
  680.      values, you say! Well.... the gentleman who donated the code to do the
  681.      formatting directives, a certain Dalnefre' of SynTel, is a C hacker, and
  682.      did it that way.  We feel it might be worth changing sometime in
  683.      the future, too.)
  684.  
  685.         Please keep in mind that the '\r' has an added implication when placed
  686.      in a CtdlCnfg.Sys string being sent to the modem.  Citadel-86 will pause
  687.      for a full second after sending it in most situations.  This allows the
  688.      sysop to send multiple commands to those modems using carriage returns as
  689.      command delimiters, since the one second pause will give the modem time
  690.      to digest the command.  For instance, "ATZ\rATS0=1\r" sent to Hayes-style
  691.      modems would cause Citadel-86 to send "ATZ\r", pause for a full second
  692.      during which the modem would reset to its power-up state (or at least for
  693.      most Hayes clones it will), and then send the "ATS0=1\r", which activates
  694.      the modem's auto-answer mode.  Please note this special processing of '\r'
  695.      only applies to modem initialization and reinitialization strings, not to
  696.      all strings.
  697.  
  698.         One more note.  Certain of the string values in CtdlCnfg.Sys end up
  699.      being printed to the users via Citadel-86's formatter.  In these cases,
  700.      when you use the CR/LF formatting directive ("\n"), remember to have a
  701.      space follow it -- otherwise, Citadel-86's formatter probably won't send
  702.      a CR/LF to the caller's terminal!
  703.  
  704.         Finally, you'll find a couple of parameters affect your installation
  705.      simply by their very existence in your CtdlCnfg.Sys.  So that makes three
  706.      ways to set values.
  707.  
  708.      II.6.b Section 1 of CtdlCnfg.Sys
  709.         We're finally looking at CtdlCnfg.Sys.  The file starts (or at least
  710.      our virgin copy does) with a short introduction to itself, which basically
  711.      tells you to consult this manual if you find it too terse.  A short list
  712.      of supported formatting directives is also included.
  713.  
  714.      Part 1 of Section 1: MEANINGLESS MISCELLANEA
  715.  
  716.         We're going to start Section 1 with some miscellaneous parameters.
  717.  
  718.  
  719.  
  720.  
  721.  
  722.  
  723.  
  724.                                     -10-
  725.  
  726.  
  727.  
  728.  
  729.  
  730.      ------
  731.      #nodeTitle
  732.         The first parameter you should find is called nodeTitle. It is a string
  733.      value obeying formatting directives, and is subject to formatting
  734.      considerations.  nodeTitle is the title of your installation printed when
  735.      carrier is detected on your system.  More precisely, nodeTitle will show
  736.      up in the following place on your system:
  737.  
  738.       Welcome to <#nodeTitle>
  739.        Running ...
  740.  
  741.      However, nodeTitle may not necessarily be printed at this point.  After
  742.      successfully bringing your system up, please consult OPER3.MAN's section
  743.      on Help Files for more information on banner options.  EXAMPLE:
  744.  
  745.      #nodeTitle "Test System\n Truly a Heaven in Reverse"
  746.  
  747.      The #nodeTitle is printed out on .Read Status commands, also.  There is no
  748.      formal limit on the length of this parameter.
  749.  
  750.      ------
  751.      #nodeName
  752.         nodeName is, in reality, purely a network parameter, and if you have no
  753.      plans to ever join a C86Net, then there is no need to fill in this
  754.      parameter.  However, it has always been traditional, even before there was
  755.      a net for any Citadel system anywhere, to fill in this and the next
  756.      parameter (and, so, sentimentally we feel this belongs in this
  757.      Miscellaneous section).   nodeName is a string value which does NOT accept
  758.      formatting directives (i.e., formatting directives will be ignored).  It 
  759.      can be no longer than 19 letters long.  It should be a short, mnemonic
  760.      name for your system.  An EXAMPLE of a reasonable value:
  761.  
  762.      #nodeName "ODD-DATA"            -- The original Citadel
  763.  
  764.      If you ever do join a C86Net, messages from your system appearing on
  765.      another Citadel-86 node will look something like this
  766.  
  767.         82Nov23 from Cynbe ru Taren @ODD-DATA
  768.  
  769.      except ODD-DATA would be replaced with your value for #nodeName.
  770.  
  771.      ------
  772.      #nodeId
  773.         As mentioned, this parameter is a network parameter that has
  774.      traditionally always been set, even for non-network Citadels.  If you have
  775.      no plans to ever be on a C86Net, then you don't have to set this string
  776.      value parameter to anything important.  If you do plan to join one,
  777.      though, (we'll go over this in more detail in the section on the network),
  778.      then you do have to set this parameter correctly.  The format of this
  779.      parameter is
  780.  
  781.           "<Country code><Area Code><Phone number>"
  782.  
  783.      all of which applies to the phone your system resides on.  Country
  784.      code is a two letter sequence indicating what country you live in (US is
  785.      the United States, CA is Canada.  Other country codes may be found in
  786.      COUNTRY.DOC). Area code is the area code of your system (yes,
  787.  
  788.  
  789.  
  790.                                     -11-
  791.  
  792.  
  793.  
  794.  
  795.      we are aware there is a clear bias towards US-style telephony).  And
  796.      Phone number is, of course, the phone number your system is on.  You
  797.      can put punctuation (such as parenthesis and dashes), but please be
  798.      conservative with them.  This string value does not obey formatting
  799.      directives.  Here's a fairly generic example:
  800.  
  801.      #nodeId "US (612) 470 9635"          -- Some system somewhere
  802.  
  803.      ------
  804.  
  805.      Part 2 of Section 1: REQUIRED ODD STUFF
  806.  
  807.      ------
  808.      #baseRoom
  809.         OK, now we're out of the miscellanea and into parameters you have
  810.      to set, starting with baseRoom.  Citadel-86 always has a minimum of three
  811.      rooms, the Aide> room for housekeeping, the Mail> room for private
  812.      correspondence, and the <baseRoom>, which is the room a caller is
  813.      always initially placed in.  (Historical note: the old CP/M Citadel called
  814.      this room the Lobby>; we've only made the name of the Lobby> selectable by
  815.      the sysop.)  This parameter is a string value obeying formatting
  816.      directives and goes through the Citadel-86 formatter, and you must limit
  817.      yourself to 19 characters or less for this value. And one more note --
  818.      Citadel-86 will append the '>' to this name when it prints the room prompt
  819.      for this room, you don't have to put it in yourself. If you wished to
  820.      emulate the old CP/M Citadel, you'd set baseRoom thus:
  821.  
  822.      #baseRoom "Lobby"
  823.  
  824.      There is no default for this parameter.
  825.  
  826.      ------
  827.      #MainFloor
  828.         MainFloor is analogous to #baseRoom.  Any Citadel-86 V3 has a base
  829.      floor, just as it has an Aide> room, etc.  This parameter allows you to
  830.      name this base floor.  This parameter is a string value which cannot be
  831.      longer than 19 characters, and specifies the name of your base floor.  So,
  832.      if you want to name your base floor MAIN FLOOR, you'd have
  833.  
  834.      #MainFloor "MAIN FLOOR"
  835.  
  836.      There is no default value for this parameter.
  837.  
  838.      ------
  839.      #CRYPTSEED
  840.         Citadel-86 automatically encrypts all sensitive data files.  While the
  841.      algorithm used can, of course, be broken by the determined, particularly
  842.      since the code is available for perusal, the encryption does provide
  843.      protection against casual eyes, mistakes, and amateur system breakers.  We
  844.      do encourage you to take precautions of your own, such as not opening
  845.      directory rooms into sensitive data areas.
  846.  
  847.         CRYPTSEED is an encryption seed Citadel-86 uses to encrypt your
  848.      data; if someone should acquire of all of your data files but for
  849.      CtdlCnfg.Sys, then they still won't have access to your system until they
  850.      figure out what your CRYPTSEED is.  DON'T EVER CHANGE THIS VALUE WHILE
  851.      RUNNING A CITADEL-86, OR EVERYTHING WILL BECOME MESSED UP!
  852.  
  853.  
  854.  
  855.  
  856.                                      -12-
  857.  
  858.  
  859.  
  860.  
  861.         We do not know of any value you can select which will "deactivate"
  862.      the encryption process (to be frank, we don't understand the encryption
  863.      algorithm ourselves).  Pick a value at random; the value should be a
  864.      value less than 65536.  Here's an example:
  865.  
  866.      #CRYPTSEED    69            -- a little hubris for the shy
  867.  
  868.      ------
  869.      #UNLOGGED-WIDTH
  870.         This parameter is used for users who have not logged in yet to specify 
  871.     the width of their screens.  If not present, it will default to 40.  
  872.     Remember this applies to your login banners.
  873.  
  874.     #UNLOGGED-WIDTH 79          - makes it all look normal
  875.  
  876.  
  877.      Part 3 of Section 1: DATA FILE SIZES
  878.  
  879.     ------
  880.      #MESSAGEK
  881.         MESSAGEK defines how much disk space you wish to allocate for messages
  882.      on your installation.  There is no way to define how many messages you
  883.      want in your system, or how fast they turnover.  All the messages in your
  884.      system will reside in CTDLMSG.SYS, and thus the number of messages in your
  885.      system at any given moment will depend on the length of the messages being
  886.      entered into the system by your users.  The turnover rate of your messages
  887.      will depend on how busy your system is.  As an example, Test System has a
  888.      611K message base, which holds 2100 messages +/- 300, of which some are of
  889.      fairly good length.  Turnover seems to between 3 weeks and a month, since
  890.      80-160 messages are entered a day.  However, Test System is also a busy
  891.      system.
  892.  
  893.         The sysop of an installation should also keep in mind that very large
  894.      systems, with many new messages, can be intimidating to new users, so
  895.      large message spaces should be approached with caution.  Remember, there
  896.      is a utility for expanding the message base, but not for shrinking it.
  897.  
  898.         This is a numerical value which you specify in 'K', which is actually
  899.      1024 bytes/K.  So, for example, to specify a 250K message file
  900.  
  901.      #MESSAGEK 250               -- 250K message base
  902.  
  903.      ------
  904.      #MSG-SLOTS
  905.         This numerical parameter specifies how many messages per room will
  906.      be used on this system (the lone exception is the Mail>, which is covered
  907.      by the following parameter).  If you wanted to use Citadel-86's
  908.      traditional number of messages per room, you'd have
  909.  
  910.      #MSG-SLOTS 58
  911.  
  912.      ------
  913.      #MAIL-SLOTS
  914.         This is a numerical parameter specifying how many messages per log
  915.      record you wish to reserve for Mail.  The Mail> room is the only
  916.      room in the system whose data is not kept in CTDLROOM.SYS.  Instead, the
  917.      file CTDLLOG.SYS contains the "Mail>" room, reserving for each account
  918.  
  919.  
  920.  
  921.  
  922.                                     -13-
  923.  
  924.  
  925.  
  926.  
  927.  
  928.      enough room for MAIL-SLOTS Mail messages.  Therefore, this parameter gives
  929.      you the ability to decide the maximum number of Mail> messages per user 
  930.      they can access.  Please remember if a user gets more messages
  931.      in Mail> than there are MAIL-SLOTS between two successive logins, then
  932.      they will lose the earlier messages sent to them.  Another consideration
  933.      is many users like to review old Mail when engaged in an in-depth
  934.      private conversation.  Therefore, setting MAIL-SLOTS to a low value may
  935.      not be the attractive alternative it first seems.  However, it should
  936.      go without saying a high MAIL-SLOTS value may eat up more room than
  937.      necessary on your drives.  The section on LOGSIZE will give an exact
  938.      formula for how much space your log will take up.  If you wanted to use
  939.      what Citadel-86 used before V3, you'd have
  940.  
  941.      #MAIL-SLOTS 58
  942.  
  943.      ------
  944.      #MAXROOMS
  945.         This numerical parameter specifies the maximum number of rooms your
  946.      system will support.  Since the baseRoom, Aide>, and Mail> room are
  947.      necessary, the smallest value you can give is 3.  The largest number is
  948.      65536 (probably).  If you wanted to have a 64 room system, you'd have
  949.  
  950.      #MAXROOMS 64
  951.  
  952.         You can use the following formula to estimate the number of bytes a 
  953.      room file will take up on your system:
  954.  
  955.           # of bytes = MAXROOMS *(50 + (6 * MSG-SLOTS))
  956.  
  957.      ------
  958.      #LOGSIZE
  959.         This numerical parameter gives you the ability to decide
  960.      how many accounts will be available on your system.  If you run a system
  961.      in which more accounts are used than there are accounts reserved, then new
  962.      accounts are generated by killing old accounts.  Accounts are recycled
  963.      by finding the account who's last use is the oldest of all the accounts
  964.      in the system, under the assumption such an account is no longer active.
  965.  
  966.         All space is reserved immediately for these accounts.  The size of
  967.      this file can be estimated from the formula
  968.      
  969.           # of bytes = LOGSIZE * (82 + MAXROOMS + (6 * MAIL-SLOTS))
  970.  
  971.      so if you are operating in a restricted environment, plan accordingly.
  972.  
  973.         If you need to, you can expand the size of the log through the use of
  974.      the DATACHNG utility, but the log cannot be shrunk.  This is a numerical
  975.      value.  Here is an example:
  976.  
  977.      #LOGSIZE 180                -- Usually adequate.
  978.  
  979.      Part 4 of Section 1: DATA FILE LOCATIONS
  980.  
  981.         Now we discuss where you want the data files to be located on your
  982.      system.  These parameters are all specified in the same way, as a string
  983.      value (which does not obey formatting directives, naturally) telling
  984.      Citadel where on your system the given data file or files associated with
  985.      the given parameter is located.
  986.  
  987.  
  988.                                     -14-
  989.  
  990.  
  991.  
  992.  
  993.  
  994.  
  995.         Simply use the MSDOS relative directory specification.  You can
  996.      ONLY specify a subdirectories of the current directory on the disk you
  997.      specify (if you don't specify a disk, then the current disk will be
  998.      assumed).  So, some sample valid specifications would be "c:", "a:system",
  999.      "b:msgs", and "i:bark".  Some sample INVALID specifications include
  1000.      "c:\citadel\msgs" (an absolute specification, rather than relative),
  1001.      "a:\audit" (ditto), and "i:.." (".." is technically not a subdirectory,
  1002.      but a parent directory).
  1003.  
  1004.         If CONFG.EXE cannot find the directory you specify, it will
  1005.      attempt to create the directory, after asking permission.
  1006.  
  1007.      ------
  1008.      HELPAREA
  1009.         This parameter specifies where all of your Help files will be located.
  1010.      These files are *.HLP, *.BLB, and *.MNU.  Normally, you should create this
  1011.      directory and place the help files in the directory before bringing up
  1012.      Citadel-86, since help files are usually online at all times.
  1013.  
  1014.      #HELPAREA "c:helps"         -- helps subdirectory on drive C:
  1015.  
  1016.      ------
  1017.      LOGAREA
  1018.         This parameter specifies the location of your CTDLLOG.SYS file (this 
  1019.      file is sized by your LOGSIZE parameter).
  1020.  
  1021.      #LOGAREA "c:system"         -- put it in a general system dir
  1022.  
  1023.      ------
  1024.      ROOMAREA
  1025.         This parameter specifies the location of CTDLROOM.SYS, CTDLARCH.SYS,
  1026.      and CTDLDIR.SYS.
  1027.  
  1028.      #ROOMAREA "system"          -- another general system dir
  1029.  
  1030.      ------
  1031.      MSGAREA
  1032.         This parameter specifies the location of CTDLMSG.SYS.
  1033.  
  1034.      #MSGAREA "c:msg"            -- give msgs there own place in the sun
  1035.  
  1036.      ------
  1037.      FLOORAREA
  1038.         This parameter specifies the location of CTDLFLR.SYS.
  1039.  
  1040.      #FLOORAREA "floors"
  1041.  
  1042.      Part 5 of Section 1: POLICY OPTIONS
  1043.  
  1044.         Now we enter the POLICY part of the CtdlCnfg.Sys file.  The parameters
  1045.      discussed here represent the parts of your policy enforceable via
  1046.      the Citadel-86 software.
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.                                     -15-
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.      ------
  1062.      #AIDESEEALL
  1063.         This parameter is a toggle giving you some power over the scope of
  1064.      your aides' "vision".  If you set this parameter to 1, then your aides
  1065.      have access to all public AND private rooms (but not invite rooms, unless
  1066.      the have been invited).  If this parameter is set to 0, then aides only
  1067.      have access to public rooms, plus those private and invite rooms
  1068.      they've been invited to.  So, if you want your aides to see all public and
  1069.      private rooms, you would have
  1070.  
  1071.      #AIDESEEALL 1               -- See all but invite rooms
  1072.  
  1073.      if you don't want your aides to be so nosy, then you'd have
  1074.  
  1075.      #AIDESEEALL 0               -- See only public rooms.
  1076.  
  1077.      ------
  1078.      #LOGINOK
  1079.         The LOGINOK parameter controls whether your system is an "open" or
  1080.      "closed" system.  If you set LOGINOK to 1, the system will allow anyone to
  1081.      log in as a "new" user; i.e., it will ask a caller who uses an
  1082.      unrecognized password if they wish to login as a new user.  If LOGINOK is
  1083.      set to 0, the system will simply tell the caller without a valid password
  1084.      there is no record of their password, and they should leave Mail> to the
  1085.      sysop (but see OPER3.MAN's section on the various Help Files for another
  1086.      option); the only way to enter new users into the system is from the
  1087.      system console. If you want an open system, for example, you would have:
  1088.  
  1089.      #LOGINOK 1                  -- let the riff-raff in!
  1090.  
  1091.      ------
  1092.      #ENTEROK
  1093.         ENTEROK controls whether a caller who is not logged in can enter
  1094.      messages or not.  If ENTEROK is 1, then a caller who has not logged in
  1095.      can enter messages; if it is 0, then they must log in first, except for
  1096.      Mail to the sysop.  Setting ENTEROK to 0 can reduce vandalism; setting
  1097.      it to 1 gives your callers the privilege of anonymity.
  1098.  
  1099.      #ENTEROK  0                 -- log in first, folks!
  1100.  
  1101.      ------
  1102.      #READOK
  1103.         READOK controls whether an unlogged caller can read messages.  If
  1104.      READOK is 1, then they may.  If READOK is 0, then an unlogged caller can
  1105.      only read the policy statement available in the Mail> room (POLICY.HLP),
  1106.      and the help files.  Setting READOK to 0 can discourage unwelcome callers
  1107.      from using scarce system time.
  1108.  
  1109.      #READOK 0                   -- gotta login to read these gems...
  1110.  
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119.  
  1120.                                     -16-
  1121.  
  1122.  
  1123.  
  1124.      ------
  1125.      #ROOMOK
  1126.         ROOMOK controls who can create new rooms on your system.  If ROOMOK is
  1127.      1, then any logged in user of the system may create new rooms.  If ROOMOK
  1128.      is 0, then only aides may create new rooms on your system.
  1129.  
  1130.      #ROOMOK 1                   -- a liberal policy
  1131.  
  1132.      ------
  1133.      #ALLMAIL
  1134.         ALLMAIL controls who can use the Mail> room.  If ALLMAIL is 1, then
  1135.      any user may use Mail> to send private messages to any other user on the
  1136.      system.  If ALLMAIL is 0, then only Aides may use the Mail> room in a
  1137.      general manner; regular folk can only use Mail> for messages to Sysop.
  1138.      Setting ALLMAIL to 0 may be appropriate on tightly focused systems
  1139.      operating in a small environment.
  1140.  
  1141.      #ALLMAIL 1                  -- the normal policy
  1142.  
  1143.      ------
  1144.      #DoorPrivs
  1145.         DoorPrivs lets you decide if new users should automatically be given 
  1146.      door privileges or if they should ask you for them.
  1147.  
  1148.      #DoorPrivs 1               -- they get them automatically
  1149.  
  1150.      #DoorPrivs 0               -- they have to ask.
  1151.  
  1152.      ------
  1153.      #ANON-MAIL-LENGTH
  1154.         When this numeric parameter is present, all anonymous Mail> to sysop is
  1155.      limited to the specified number of characters.  When a message is sent
  1156.      exceeding this limit, the user loses carrier and the message is appended
  1157.      to a file named ANONMAIL, just in case the Mail was valid.  This option
  1158.      is useful when a vandal is attempting to scroll the message base and is
  1159.      being very persistent, to the point where even closing open logins just
  1160.      causes him to leave anonymous Mail to sysop, since that's the last
  1161.      vulnerable point in the system once login access is lost.  This would let
  1162.      you let limit anonymous Mail> to 300 characters.
  1163.  
  1164.      #ANON-MAIL-LENGTH 300
  1165.  
  1166.      If this parameter is not present or the value is 0 then there is no
  1167.      limit on anonymous Mail.
  1168.  
  1169.      ------
  1170.      #LOGIN-ATTEMPTS
  1171.      This parameter lets you control how many unsuccessful attempts an
  1172.      unlogged user can indulge in before the system will drop carrier on them.
  1173.      For instance, the following lets a user try four times before carrier is
  1174.      dropped.
  1175.  
  1176.      #LOGIN-ATTEMPTS    4
  1177.  
  1178.  
  1179.  
  1180.  
  1181.  
  1182.  
  1183.  
  1184.  
  1185.  
  1186.                                     -17-
  1187.  
  1188.  
  1189.  
  1190.  
  1191.      ------
  1192.      #FILE-PRIV-DEFAULT
  1193.      File privileges may be set for new users en masse.  #FILE-PRIV-DEFAULT,
  1194.      a numeric parameter, lets you set whether the average new user can have
  1195.      file privileges.  Use 1 to indicate they may, 0 to indicate they may not.
  1196.  
  1197.      #FILE-PRIV-DEFAULT  1
  1198.  
  1199.      means you're a generous soul.  If this parameter is not present, it will
  1200.      default to 1 (on).  You may also assign file privileges individually
  1201.      using LOGEDIT or the <U>ser Administration menu hanging off of the Sysop
  1202.      Menu.
  1203.  
  1204.      File privileges do not apply to uploads.
  1205.  
  1206.      ------
  1207.      Part 6 of Section 1: MODEM HANDLING
  1208.         We now enter into defining the essential details of your communications
  1209.      hardware.
  1210.  
  1211.      ------
  1212.      #IBM
  1213.         You use this parameter to tell your Citadel-86 if your system is
  1214.      running on an IBM PC/XT/AT or compatible, or if it is running on a Zenith
  1215.      Z-100 (set it at 0). If you have an IBM, you'd have
  1216.  
  1217.      #IBM 1                      -- Big Boo
  1218.  
  1219.      ------
  1220.      #COM
  1221.         This parameter is meaningful only for IBMs, and selects which COM port
  1222.      the modem is attached to (on Z-100s only J2 ports are supported).  For
  1223.      IBMs, only COM ports 1, 2, 3, and 4 are supported.
  1224.  
  1225.      #COM 1                      -- If you are using COM1.
  1226.  
  1227.      ------
  1228.      #SYSBAUD
  1229.         The SYSBAUD parameter is used to tell Citadel-86 what baud rates your
  1230.      hardware will support.  Citadel-86 cannot normally be configured to run
  1231.      high baud rates while excluding lower baud rates (i.e., operate
  1232.      correctly at 1200 baud but not at 300 baud).  Here's the mapping:
  1233.  
  1234.        0 => 300
  1235.        1 => 300/1200
  1236.        2 => 300/1200/2400
  1237.        3 => 3/12/24/48
  1238.        4 => 3/12/24/48/96
  1239.        5 => 3/12/24/48/96/14.4
  1240.        6 => 3/12/24/48/96/14.4/19.2
  1241.  
  1242.      #SYSBAUD 1                  -- A 3/12 system.
  1243.  
  1244.  
  1245.  
  1246.  
  1247.  
  1248.  
  1249.  
  1250.  
  1251.  
  1252.                                     -18-
  1253.  
  1254.  
  1255.  
  1256.  
  1257.      ------
  1258.      #modemSetup
  1259.         This parameter is used to initialize your modem.  It is a string value
  1260.      parameter obeying the formatting directives; however, you should be
  1261.      warned Citadel-86 automatically appends a "\r" to the end of this
  1262.      string before sending it to the modem.
  1263.  
  1264.         And when is modemSetup sent to the modem?  It is automatically sent
  1265.      while Citadel-86 is initializing, and it will also be automatically
  1266.      sent to the modem whenever the <R>einitialize command is selected from the
  1267.      Sysop Menu (i.e. privileged function:).
  1268.  
  1269.         The value you use for this string should cause the modem to be
  1270.      put into a mode where it will function suitably with Citadel-86.  This
  1271.      includes auto-answer and response to DTR, at the very least.  Other
  1272.      options you may wish to consider include turning the modem speaker
  1273.      off (if you have one); consult your modem manual for details.  The example
  1274.      we have here is biased towards Hayes/compatible modems.  You may have to
  1275.      do some research if you're using an odd modem.  Our example turns
  1276.      auto-answer on and turns off the speaker on a Hayes modem; note the lack
  1277.      of "\r".
  1278.  
  1279.      #modemSetup "AT S0=1 M0"           -- Surely an exercise in aesthetics...
  1280.  
  1281.      ------
  1282.      #REINIT
  1283.         As faster and faster modems appear on the scene, some of these modems 
  1284.      are displaying odd characteristics which did not appear in the early
  1285.      300/1200 modems.  Chief amongst these is that some modems, after 
  1286.      accepting a call at a baud rate lower than the modem's highest, will not 
  1287.      accept calls at higher baud rates without being reinitialized at the 
  1288.      highest baud rate.  If your modem is one of these types, then you will 
  1289.      wish to use this parameter.
  1290.  
  1291.         Also, we have observed that some modems, although capable of accepting 
  1292.      calls at high baud rates directly after low baud calls have been 
  1293.      accepted, are not as reliable in the area of Result Codes as we might 
  1294.      like.  Since Citadel-86 can use Result Codes (see Section II.9.d), we
  1295.      would like to see this improved, and, fortunately enough, we have 
  1296.      observed using #REINIT with such modems actually increases their 
  1297.      reliability.  So, even if you have a good modem, you may wish to use this 
  1298.      parameter.
  1299.  
  1300.         When this parameter is present, it causes Citadel-86 to reinitialize 
  1301.      the modem at its highest rate with the string you specify in this 
  1302.      parameter.  This parameter accepts format directives.  For most Hayes 
  1303.      compatible modems, the string "AT" is usually more than acceptable.
  1304.  
  1305.      -#REINIT "AT"                      -- disabled, but recommended value
  1306.  
  1307.  
  1308.  
  1309.  
  1310.  
  1311.  
  1312.  
  1313.  
  1314.  
  1315.  
  1316.  
  1317.  
  1318.                                     -19-
  1319.  
  1320.  
  1321.  
  1322.  
  1323.      ------
  1324.      #DISABLE-MODEM
  1325.      #ENABLE-MODEM
  1326.         Usually, when Citadel-86 needs to "disable" your modem (that is,
  1327.      cause it not to answer the modem), it "drops" the DTR pin (electrical
  1328.      stuff, don't worry about it), which usually causes the modem to stop
  1329.      answering the phone.  The modem is disabled whenever you, the sysop,
  1330.      uses the system at the system console.
  1331.  
  1332.          Some sysops, however, would prefer the modem go "off-hook"; that is,
  1333.      the modem should hold your phone line open and thus cause a busy signal
  1334.      for all callers while you're on.  These optional string parameters,
  1335.      when present, are sent to the modem when disabling and enabling the
  1336.      modem, thus making it easy to force a busy signal when you're on if
  1337.      you know what command to send to your modem.  For example, "ATH1" will
  1338.      put most Hayes-type modems "off-hook", and "ATH0" will put them back
  1339.      on-hook.  In the following, we've disabled the parameters since we don't
  1340.      particularly recommend the use of these parameters ourselves, but the
  1341.      values are what we'd probably recommend if we used them.  Note the use
  1342.      of "\r" at the end of each!  Citadel-86 will not! automatically append
  1343.      the carriage return needed to force the modem to process the command, so
  1344.      you must do that yourself!
  1345.  
  1346.      -#DISABLE-MODEM "ATH1\r"
  1347.      -#ENABLE-MODEM  "ATH0\r"
  1348.  
  1349.      ------
  1350.      #LOCK-PORT
  1351.         This advanced parameter is used for "locking" your com port at the
  1352.      baud rate you specify.  This parameter is primarily useful when you
  1353.      are using a USR high speed modem (HST, Dual-Standard, etc.) and you want
  1354.      to have the callers, when they are calling in with compatible modems, to
  1355.      enjoy the highest possible throughput, which is achieved by having the
  1356.      modem talk to the computer at a specific (and high) baud rate, regardless
  1357.      of what the caller is connected at.
  1358.  
  1359.         As we said, this is an advanced option.  If you plan to use it, you
  1360.      must make sure your modem knows about it and is fed the correct modem
  1361.      commands so it knows what baud rate it should talk at.  You should use
  1362.      the #REINIT parameter to tell it this information.
  1363.  
  1364.         The parameter you specify to #LOCK-PORT should be a number indicating
  1365.      what speed you want the computer to talk to the modem.  Use the same
  1366.      scheme as for #SYSBAUD, i.e., 300 = 0, ... 4 = 9600, 5 = 14400, and
  1367.      6 = 19200.  For example, if you have a good enough serial port to handle
  1368.      19,200 baud with your USR modem, you would want
  1369.  
  1370.      #LOCK-PORT 6
  1371.  
  1372.      in your CtdlCnfg.sys.
  1373.  
  1374.  
  1375.  
  1376.  
  1377.  
  1378.  
  1379.  
  1380.  
  1381.  
  1382.  
  1383.  
  1384.                                     -20-
  1385.  
  1386.  
  1387.  
  1388.  
  1389.      ------
  1390.      Part 7 of Section 1: VIDEO OPTIONS
  1391.      ------
  1392.      OLDVIDEO
  1393.         This parameter is difficult to categorize, so we'll just lay the cards 
  1394.      out on the table.  Basically, every once in a long while we run across 
  1395.      some computer that hangs when Citadel-86 is run, and it has something to 
  1396.      do with the video portion of Citadel-86.  (We haven't actually seen this 
  1397.      happen in quite a while, but ...)  Therefore, if you place #OLDVIDEO in 
  1398.      CtdlCnfg.Sys, Citadel-86 will use its old video routines for display, 
  1399.      rather than the new.
  1400.  
  1401.      -#OLDVIDEO         -- disabled
  1402.  
  1403.      ------
  1404.      FOREGROUND
  1405.      BACKGROUND
  1406.      STATUS-FOREGROUND
  1407.      STATUS-BACKGROUND
  1408.         These four parameters allow you to specify what colors will show up at 
  1409.      the system console.
  1410.  
  1411.      FOREGROUND specifies the color of the characters themselves, except on 
  1412.      the status bar.
  1413.  
  1414.      BACKGROUND specifies the background of the screen, except on the status 
  1415.      bar.
  1416.  
  1417.      STATUS-FOREGROUND specifies the color of the characters of the status 
  1418.      bar.
  1419.  
  1420.      STATUS-BACKGROUND specifies the background color of the status bar.
  1421.  
  1422.         You have the following colors to select from.  This first list of 
  1423.      colors may only be used as FOREGROUND selections:
  1424.  
  1425.         DARK GRAY, LIGHT BLUE, LIGHT GREEN, LIGHT CYAN, LIGHT RED, LIGHT 
  1426.         MAGENTA, YELLOW, WHITE.
  1427.  
  1428.         This second list of colors may be used as either FOREGROUND or as 
  1429.      BACKGROUND selections:
  1430.  
  1431.         BLACK, BLUE, GREEN, CYAN, RED, MAGENTA, BROWN, LIGHT GRAY.
  1432.  
  1433.         Please note on some color monitors not all colors are 
  1434.      available, and on monochrome monitors you should probably select 
  1435.      highly contrasting colors for Foreground/Background pairs.  Here is an 
  1436.      example:
  1437.  
  1438.      #FOREGROUND RED
  1439.      #BACKGROUND BLUE
  1440.      #STATUS-FOREGROUND LIGHT GREEN
  1441.      #STATUS-BACKGROUND BLACK
  1442.  
  1443.         Also note Citadel-86 is accompanied by a utility program named 
  1444.      SCREEN.EXE which will help you select colors easily.  Please see the 
  1445.      Utilities manual when you are ready to play with your screen colors.
  1446.      The EASE utility is also capable of helping you select screen colors;
  1447.      in fact, SCREEN is classed as an optional utility, and you may not have
  1448.      it.
  1449.  
  1450.                                     -21-
  1451.  
  1452.  
  1453.  
  1454.  
  1455.      ------
  1456.      CLOCK
  1457.         The status bar of Citadel-86 contains a clock, updated every minute, 
  1458.      in the far right-hand corner.  Some folk may not want this clock, 
  1459.      however, while others only want to see the clock only when a user is on 
  1460.      the system.  Therefore, the parameter #CLOCK is available to control the 
  1461.      behavior of the status bar clock.  The value you place after #CLOCK
  1462.      controls the behavior of the status line clock.  Here are the supported 
  1463.      values:
  1464.  
  1465.      o "None" - If this is present, then you never have a status bar clock.
  1466.      o "Inuse" - If this is present, the clock is only displayed when the 
  1467.                  system is active.
  1468.      o "Always" - This causes the clock to be active all the time.
  1469.  
  1470.         So, for instance, if you want the clock to never be on display,
  1471.  
  1472.      #CLOCK None                - No clock
  1473.  
  1474.      would do the trick for you.  If this parameter is not in your 
  1475.      CtdlCnfg.Sys, "Always" is considered the preferred value.
  1476.  
  1477.      ------
  1478.         If you are a novice setting up Citadel-86 for the first time, please 
  1479.      SKIP to Section II.7.  This is the end of Section 1 of CtdlCnfg.Sys,
  1480.      parameters which must be set for Citadel-86 to run correctly.  The other
  1481.      three sections of a virgin copy of CtdlCnfg.Sys (which we assume you are
  1482.      working with) have been given default values that shouldn't cause any
  1483.      problems with running a Citadel-86.
  1484.  
  1485.         If, on the other hand, you're just exploring what's available, continue
  1486.      on your merry way!
  1487.  
  1488.      II.6.c Section 2 of CtdlCnfg.Sys
  1489.  
  1490.         Now we enter into the realm of options which may prove useful to you in
  1491.      your particular environment, but which are not necessary for the correct
  1492.      operation of a Citadel-86.  We're going to begin by discussing a general
  1493.      time-driven event-handler facility.  Then we'll talk about some other
  1494.      miscellaneous parameters.
  1495.  
  1496.      ------
  1497.      #event ...
  1498.         This is what we're calling a "time-driven event-handler", which we're
  1499.      going to define as the ability to cause Citadel-86 to do certain things
  1500.      at times you specify.  So, for instance, you can have the system
  1501.      come down at certain times of the day to back itself up, or have it go
  1502.      into networking mode several times a week -- or several times a day.  Or
  1503.      do whatever your imagination suggests.  Any number of these #event
  1504.      parameters may appear in your CtdlCnfg.Sys file.
  1505.  
  1506.         This is the generic format of these parameters.
  1507.  
  1508.      #event <days> <time> <class> <type> <duration> <warning string> <depends>
  1509.  
  1510.  
  1511.  
  1512.  
  1513.  
  1514.  
  1515.  
  1516.                                     -22-
  1517.  
  1518.  
  1519.  
  1520.  
  1521.         Here is an explanation of each parameter field in the above.
  1522.  
  1523.      <days> can be any of the values "Mon", "Tue", "Wed", "Thu", "Fri", "Sat",
  1524.      "Sun", or "All", or any combination of the first seven.  If used in
  1525.      combination, separate each with a ',', but NO spaces are allowed.  This
  1526.      part of #event is used to specify on what days this event is to take
  1527.      place.  So, if you want something to happen only on Wednesdays and
  1528.      Saturdays, then you'd have
  1529.  
  1530.      #event Wed,Sat ....
  1531.  
  1532.      The 'All' value means, of course, all days of the week.
  1533.  
  1534.      <time> is the military specification of what time of day this event is
  1535.      supposed to happen (unless the class of this event is 'relative' -- see
  1536.      below).  For instance, 11 AM would be
  1537.  
  1538.      #event .... 11:00 ....
  1539.  
  1540.      while 11 PM would be
  1541.  
  1542.      #event .... 23:00 ....
  1543.  
  1544.      and 12:30 AM would be
  1545.  
  1546.      #event .... 00:30 ....
  1547.  
  1548.      Only one time can be specified in this field.  If you need the same event
  1549.      to happen at multiple times, then use separate #event entries.
  1550.  
  1551.      <class> indicates the class of the event, which is roughly what kind of
  1552.      event it will be.  C-86 supports twelve classes of events at this time,
  1553.      as described below.
  1554.  
  1555.      'network' -- this indicates Citadel-86 should drop into networking
  1556.      mode on the day(s) at the time indicated by the <days> and <time> fields.
  1557.      See NETWORK3.MAN for more information.
  1558.  
  1559.      'until-done-net' - This class of event is very much akin to the 'network'
  1560.      class of event, and before using this event it is recommended the
  1561.      'network' class be reviewed.  This class differs in that if all systems
  1562.      on the member nets specified for this event are reached (or do not need
  1563.      to be called) then the system will immediately exit the network session.
  1564.      Spine systems will be called regardless of the need to connect.  The
  1565.      <depends> format for this class is the same as for 'network'.  See
  1566.      NETWORK3.MAN for more information.
  1567.  
  1568.      'external' -- this indicates Citadel-86 should come down on the
  1569.      day(s) at the time specified by the <days> and <time> fields.  The
  1570.      ERRORLEVEL Citadel-86 should generate when it comes down will be
  1571.      discussed later in the subsection on the <depends> field.  This class
  1572.      should be used in conjunction with a carefully written batch file.
  1573.  
  1574.      'relative' -- this indicates Citadel-86 should come down X minutes
  1575.      after it has come up (this is used to replace the TIMEOUT and HOUROUT
  1576.      parameters of pre-V3 Citadel-86).
  1577.  
  1578.  
  1579.  
  1580.  
  1581.  
  1582.                                     -23-
  1583.  
  1584.  
  1585.  
  1586.  
  1587.      The number of minutes (X) should be expressed in the <time> field; the
  1588.      <days> field has no meaning (although it should be filled in) when class
  1589.      is 'relative'.  The ERRORLEVEL to be generated by Citadel-86 when it comes
  1590.      down will be discussed later, but for now we'll state it occupies the
  1591.  
  1592.      <depends> field.  For instance, if you want your system to come down 6
  1593.      hours after it comes up, do something, and then come back up (at which
  1594.      point you should realize it'll come back down again 6 hours after that,
  1595.      unless another event comes first), you would have an event like:
  1596.  
  1597.      #event Sat 6:00 relative .... 7
  1598.  
  1599.      in your CtdlCnfg.Sys (note Sat is meaningless, but some valid field
  1600.      has to be there), and your batch file would have something like this:
  1601.  
  1602.      :loop
  1603.      ctdl
  1604.      ...
  1605.      if ERRORLEVEL 7 goto doseven
  1606.      ...
  1607.      :doseven
  1608.      REM this is a generic program call, fill in with what you'd really do
  1609.      generic
  1610.      REM other things..
  1611.      ....
  1612.      REM now bring Citadel-86 back up
  1613.      goto loop
  1614.      ....
  1615.  
  1616.      'dl-time' -- This indicates a "download time limit" should be
  1617.      activated.  When this class of event is active, the total amount of time
  1618.      a user may use in downloads during the period of time this #event is active
  1619.      is limited by the value in the <depends> field, specified in MINUTES.
  1620.      This class value should only be used with the 'quiet' type (see below).
  1621.      When this event ends, download time limits return to an unlimited status
  1622.      automatically.
  1623.  
  1624.      'anytime-net' -- This class is used to activate the Anytime-Netting
  1625.      Callout feature.  This feature is detailed in NETWORK3.MAN; basically,
  1626.      events of this class specify the period of time in which calling out
  1627.      to other systems specified in the <depends> field of the event for 
  1628.      anytime network purposes is acceptable.  The start time specifies when
  1629.      the system may becomes eligible for calling out, and the <duration> field
  1630.      indicates how long this eligibility is to last.  You may also specify how 
  1631.      long the system is to be idle before anytime netting is to be attempted, 
  1632.      and how long such net sessions should last, using the #event parameter.
  1633.      NETWORK3.MAN contains the closest thing to a full discussion of this
  1634.      feature, and we strongly recommend you read Network3.Man before using
  1635.      this class of #event.  This class should only be used with the <type>
  1636.      value 'quiet' (see below).
  1637.  
  1638.      'door-limit' -- This class is used to place time limits on how long the 
  1639.      current user may spend using doors on your installation.  The <days>,
  1640.      <time>, and <duration> (see below) fields are the same as for most other 
  1641.      classes, meaning you can designate which ever days and times you want 
  1642.      doors to be limited, and for how long.  The <class> field should, of
  1643.      course, contain 'door-limit" as its value.  The only valid <type> value
  1644.  
  1645.  
  1646.  
  1647.  
  1648.                                     -24-
  1649.  
  1650.  
  1651.  
  1652.  
  1653.      (see below) for this class of event is 'quiet'.  This #event is ignored 
  1654.      when the user is a sysop, either remote or at the sysConsole.  This 
  1655.      #event is overridden by automatic doors (see below).
  1656.  
  1657.      'autodoor' -- This class is used to set up 'automatic doors' to be 
  1658.      triggered when specified users log in.  The days, time, and duration 
  1659.      fields are the same as usual, thus allowing you to deactivate and 
  1660.      activate it at scheduled times.  See the <depends> definition below for 
  1661.      the format of <depends> in connection with this class.  The only valid 
  1662.      type value is 'quiet'.
  1663.  
  1664.      'chat-on' -- This class is used to enable Chat Mode (that is, allow
  1665.      users to signal the sysop for a chat) at a specified time.  Days and
  1666.      time are the same as usual.  However, the duration field does NOT
  1667.      imply that at the end of the event Chat will be automatically turned
  1668.      off.  However, by setting the duration field appropriately you may
  1669.      ensure Chat is turned on in case your system is brought up after the
  1670.      event but during a time you'd prefer chat to be on.  For example, if
  1671.      you wanted Chat to be on starting at 7PM, and were sure you wanted it
  1672.      on until 10PM, you might have a #event that looked like this:
  1673.  
  1674.         #event all 19:00 chat-on ... 180 ...
  1675.  
  1676.      This would not only turn Chat on at 7PM, but, if your system was down
  1677.      due to a power shortage (for example) until after 7PM and then brought
  1678.      up, the duration of 180 minutes would still turn Chat on.  If you had
  1679.      used 0, then Chat would not have been turned on if your system was down
  1680.      at 7PM.  This class should only be used with the <type> value 'quiet'
  1681.      (see below).
  1682.  
  1683.      'chat-off' -- This class is the same as 'chat-on' except, of course,
  1684.      chat is turned off at the specified time.
  1685.  
  1686.      'redirect' -- This class lets you redirect an incoming file from the net
  1687.      to a specific directory, which can be useful for automatic network
  1688.      domain map updates and the like.  The only valid <type> field value for
  1689.      this class is 'quiet.'  The <depends> field will contain, in order, the
  1690.      name of the incoming file to trigger on, the directory to place the
  1691.      file in, and the system from which this will be accepted (other systems
  1692.      sending same-named files will only result in the file being put in the
  1693.      normal file reception area, as will files from rogues if you are using
  1694.      network passwords).
  1695.  
  1696.      'newusers-allowed' -- This class is strongly analogous to the chat-on
  1697.      class.  At the specified time on the specified days, new users will be
  1698.      allowed to create their own accounts, regardless of the value of the
  1699.      #LOGINOK parameter in your CtdlCnfg.sys file.  As with the chat-on class,
  1700.      the duration field of the event should be set to cover the entire time
  1701.      new users will have this privilege, in case your system is brought up
  1702.      sometime during that time period.  Additionally, at the end of this event
  1703.      the parameter will NOT be set back to its old value; instead, it is left
  1704.      on.  If you want to disable the privilege when events of this class expire,
  1705.      see the next class.  Events of this class should always be of type 'quiet.'
  1706.      This class has no <depends> field.
  1707.  
  1708.  
  1709.  
  1710.  
  1711.  
  1712.  
  1713.  
  1714.                                   -25-
  1715.  
  1716.  
  1717.  
  1718.      'newusers-disallowed' -- This class complements 'newusers-allowed' and
  1719.      should be used to disallow new users from creating their own accounts.
  1720.      Example: to let new users create accounts at 7pm to 12pm and turn that
  1721.      ability off at all other times, use the following two lines:
  1722.  
  1723. #event All 19:00 newusers-allowed quiet 300 ""
  1724. #event All 00:00 newusers-disallowed quiet 300 ""
  1725.  
  1726.      <type> defines what type of event this will be, which essentially means
  1727.      how Citadel-86 reacts when the event time comes around.  There are three
  1728.      types of events supported at this time: preempt, non-preempt, and quiet.
  1729.  
  1730.      'preempt' -- this indicates when it's time for this event to occur
  1731.      the current user (if one is on) will be kicked off the system.  A warning
  1732.      will be issued to the user 5 minutes before the event is to occur (or if
  1733.      they call in after the 5 minute mark has passed, they will get the warning
  1734.      immediately). This type should be used for events which MUST occur at a
  1735.      given time, such as networking.
  1736.  
  1737.      'non-preempt' -- this indicates the system is willing to wait until
  1738.      the current user is off the system before executing the current event.  If
  1739.      the time of the event is passed by, the event will still be executed when
  1740.      the caller logs off.
  1741.  
  1742.      'quiet' -- this indicates the event should occur with no notice given
  1743.      to the user.  Currently, this only makes sense with the 'dl-time',
  1744.      'door-limit', 'autodoor', 'anytime-net', 'chat-on', and 'chat-off'
  1745.      class values.
  1746.  
  1747.      <duration> defines how long the event will last, in minutes.  If duration
  1748.      is 0, then if you happen to bring the system up at the exact time the
  1749.      event is to take place, the event WON'T take place; for all other values
  1750.      of duration, the event will take place. Duration should probably be 0 for
  1751.      external events you only want to happen once, happen quickly, and
  1752.      bring the system right back up, such as a backup event in which your BAT
  1753.      file backs up the system and then brings it back up.  This can go so fast
  1754.      your system will be back up in less than 1 minute, so you don't* want
  1755.      duration set to 1 -- you want it at 0, otherwise the event could be
  1756.      executed more than once.  However, for network events you certainly want
  1757.      it set correctly.  A 45 minute network event would look like this:
  1758.  
  1759.      #event ... ... network preempt 45 ....
  1760.  
  1761.      <warning string> is only valid for 'preempt' and 'dl-time' events.  It
  1762.      is sent to the user for the warning and for the "you've been kicked off"
  1763.      messages.  It should be enclosed in quotes.  Here's what the messages
  1764.      look like for preemptive events:
  1765.  
  1766.      "<beep>WARNING: System going down at <time> for <warning string>."
  1767.  
  1768.      "<beep>Going to <warning string>, bye!"
  1769.  
  1770.      So, for networking,
  1771.  
  1772.      #event .... "networking" ...
  1773.  
  1774.      works just fine.  The message, when used for download time limit events,
  1775.      looks like this:
  1776.  
  1777.  
  1778.  
  1779.  
  1780.                                   -26-
  1781.  
  1782.  
  1783.  
  1784.  
  1785.      "I'm sorry, that would exceed the current cumulative
  1786.                download time limit of <warning string>."
  1787.  
  1788.  
  1789.      <depends> is a parameter whose meaning depends on the class of the event.
  1790.      If the class of the event is 'external' or 'relative', then this value is
  1791.      the ERRORLEVEL Citadel-86 is supposed to generate as it comes down,
  1792.      and should be used in BAT files for further processing.  The upper
  1793.      effective limit on this parameter is whatever MSDOS allows in BAT files,
  1794.      we think.  Before leaping into this, however, please review the section
  1795.      on BAT files in this Installation Manual, paying particular attention to
  1796.      already-reserved ERRORLEVELS.
  1797.  
  1798.      If the class of this event is 'network', then <depends> specifies which
  1799.      net(s) this network event is going to participate in.  While we are not
  1800.      going to discuss in detail what Citadel-86's "multinet" capability is
  1801.      right now, here is a summary: Citadel-86 supports handling multiple
  1802.      C86Nets.  Each network is identified by a number; all of the nodes in
  1803.      your system can be associated with 0 or more of these nets. Thus, using
  1804.      the <depends> field can allow you to network with certain systems at one
  1805.      time and/or day, and other systems on other times and/or days. The
  1806.      <depends> field must have at least one of the nets identified here, and
  1807.      may have more if a particular network session is servicing more than one
  1808.      network at a time.  If more than one net is to be serviced, place a comma,
  1809.      and ONLY a comma, between each net identifier. So, if you wanted to
  1810.      specify nets 1, 6, and 14, you'd have
  1811.  
  1812.      #event .... 1,6,14
  1813.  
  1814.         If the class of the event is 'dl-time', then the depends field specifies
  1815.      the maximum number of minutes which may be spent in downloading while
  1816.      this event is in effect.
  1817.  
  1818.         If the class of this event is 'anytime-net', then depends consists of
  1819.      three values: <dead time> <session length> <member net list>.  Dead time 
  1820.      is how long the system is to be idle before attempting netting, session 
  1821.      length is how long such net sessions should last, and member net list is 
  1822.      just like the normal network session member list.
  1823.  
  1824.         If the class of the event is 'autodoor', then the format of the 
  1825.      depends field is
  1826.  
  1827.         "username" doorentrycode
  1828.  
  1829.      The reason for the quotes around the username is some users have 
  1830.      multi-word names.  doorentrycode is the entry code for the #door to be 
  1831.      triggered when user "username" logs in.
  1832.  
  1833.         If the class of the event is 'door-limit', then the depends field 
  1834.      specifies the time limit on doors in minutes.
  1835.  
  1836.         If the class of the event is 'chat-on' or 'chat-off' then there are
  1837.      no values for the depends field.
  1838.  
  1839.         if the class is 'redirect' then the <depends> field will contain
  1840.      <filename> <directory name> <system name>, for the name of the file
  1841.      which will be redirected, the directory to put it in, and the system from
  1842.      which the file will be accepted and redirected (same-named files from
  1843.      other systems will be placed in the normal area, #FILE_RECEPT_AREA).
  1844.  
  1845.  
  1846.                                   -27-
  1847.  
  1848.  
  1849.  
  1850.  
  1851.         And that's it for the #event parameter(s).  We hope our explanation
  1852.      is understandable; we sure had a hard enough time writing it!  Oh, and
  1853.      there are examples of real-world #event entries in Section XIX (we think) 
  1854.      of the Operations Manual.
  1855.  
  1856.      ------
  1857.      #sysPassword
  1858.         This parameter gives you access to the Remote Sysop capabilities of
  1859.      Citadel-86.
  1860.  
  1861.         A "Remote Sysop" is an Aide, not at the System Console, who knows
  1862.      the Remote Sysop Password.  A Remote Sysop's capabilities include complete
  1863.      access to the Sysop Menu (yes, including such silly things as changing
  1864.      the Baud Rate -- See OPER3.MAN) and when editing rooms the Remote Sysop
  1865.      can do what a normal Sysop can do.  A Remote Sysop gains access to the
  1866.      Sysop capabilities in exactly the same way as a normal Sysop does, by
  1867.      sending a ^L to the system -- but a Remote Sysop has to supply a password.
  1868.  
  1869.         This parameter, a string value which does not obey formatting
  1870.      directives, does NOT (repeat NOT!) specify the Remote Sysop Password.
  1871.      Rather, it specifies the NAME of a file containing, on one line, the
  1872.      Remote Sysop Password (this allows you to hide your Remote Sysop Password
  1873.      somewhere on your system).  This filename may specify any file anywhere
  1874.      on your system, including different drives and subdirectories.
  1875.  
  1876.         The password itself must be at least 15 letters long, and is, unlike
  1877.      most passwords, case-sensitive.  WARNING: If you change the password
  1878.      in the file, you must run CONFG again (CONFG ONLYPARAMS -- see the Section
  1879.      on Command Line parameters).
  1880.  
  1881.         If this parameter is not specified, or the file is not found, then the
  1882.      Remote Sysop facility is not active.
  1883.  
  1884.         We really don't recommend you use this facility, due to the abuse
  1885.      possible if some juvenile delinquent breaks two passwords.  However, if
  1886.      you insist on using this facility, and placed your password in a file in
  1887.      a directory on drive G, in a file named PWD in a directory on the root
  1888.      called HIDING, you'd have the following in your CtdlCnfg.Sys file.
  1889.  
  1890.      #sysPassword "g:\hiding\pwd"       -- Note the lack of '\\' sequences
  1891.  
  1892.      ------
  1893.      #door ...
  1894.         This parameter is used to make a door available to the user.  This
  1895.      subject is treated fully in Section XI of the Citadel-86 Operator's
  1896.      Manual (OPER3.MAN).
  1897.  
  1898.      ------
  1899.      #ISDOOR
  1900.         This parameter allows you to run Citadel-86 as a door itself.  When 
  1901.      you configure a Citadel-86 using this parameter, it will no longer 
  1902.      attempt to initialize the modem when coming up, because it will expect a 
  1903.      user to be there already.  For further details, see the Operations Manual 
  1904.      Section XII.
  1905.  
  1906.      ------
  1907.      #AUDITAREA
  1908.         This parameter is just like the MSGAREA, et al.  It is a string value
  1909.      parameter specifying a drive and directory which will hold three audit
  1910.      files.  If this parameter is not present in your CtdlCnfg.Sys file, then
  1911.  
  1912.                                     -28-
  1913.  
  1914.  
  1915.  
  1916.  
  1917.  
  1918.      the audit files will not be created or updated by Citadel-86.
  1919.  
  1920.         The audit files are known as CALLLOG.SYS, DOORUSE.SYS, and FILELOG.SYS.
  1921.      They are simple ASCII text files containing notes regarding system usage.
  1922.  
  1923.         CALLLOG.SYS contains three types of notes.  The first type lists when
  1924.      the system has come up and down.
  1925.  
  1926.         The second type records who has called, listing login and logout times,
  1927.      one line per person, in the following format:
  1928.  
  1929.      <person>   :   <login time> - <logout time> <baud rate>
  1930.  
  1931.         Occasionally such a line will have an extra character appended onto it,
  1932.      and they have the following significance.
  1933.  
  1934.         '+'  The user logged in as new.
  1935.         '-'  The user used .TS to logout.
  1936.         'T'  The user timed out on the system.
  1937.         'E'  The user hit the error limit on the system and was
  1938.              kicked off.
  1939.         'B'  The system kicked the user off for too many offenses against
  1940.              BADWORDS.SYS.
  1941.         'C'  The user tried to chat with you.
  1942.  
  1943.         The third type of message in CALLLOG.SYS are notes regarding network
  1944.      sessions, both normal and anytime-net.  These record on a single line
  1945.      the start and end times of the net sessions.  This particular message can 
  1946.      be disabled by using the #CLEAN-CALLLOG parameter.
  1947.  
  1948.         FILELOG.SYS format is somewhat different.  Generically, it looks like
  1949.      this:
  1950.  
  1951.      <user name> @ <baud rate>
  1952.         file1 (n bytes) <roomname> <U or D> <start to end> <length> <protocol>
  1953.                                                                         [FAILED]
  1954.         file2 (n bytes) <roomname> <U or D> <start to end> <length> <protocol>
  1955.                                                                         [FAILED]
  1956.         ...
  1957.  
  1958.         This format keeps the number of user names down.  "n bytes" is the size
  1959.      of the file.  "roomname" is the room involved.  "U or D" refers to whether
  1960.      the named file was Uploaded or Downloaded.  "start to end" refers to start
  1961.      time and end time of the file session, while length is the amount of time
  1962.      involved.  Protocol will be one of the three XMODEM, YMODEM, or WXMODEM.
  1963.      "FAILED" will only appear on the line if the transfer failed.
  1964.  
  1965.         DOORUSE.SYS simply lists who used what doors for what amount of time
  1966.      at what time of the day.
  1967.  
  1968.         If you want to have a call log, you would have something like this in
  1969.      your CtdlCnfg.Sys file:
  1970.  
  1971.      #AUDITAREA "c:audit"         -- This can only be a subdirectory
  1972.  
  1973.  
  1974.  
  1975.  
  1976.  
  1977.  
  1978.                                     -29-
  1979.  
  1980.  
  1981.  
  1982.      ------
  1983.      #MIRRORMSG
  1984.         The structure of Citadel-86's message base causes frequent disk access.
  1985.      While this is not particularly deleterious for a hard disk, this kind of
  1986.      activity has been known to actually destroy floppy drives. Therefore, it
  1987.      makes sense to put the message base into a RAM drive. However, this leaves
  1988.      systems vulnerable to message base loss due to power failure. Because of
  1989.      this, Citadel-86 has the ability to support two identical message bases at
  1990.      once.
  1991.  
  1992.         The first message base functions as the primary; messages are written
  1993.      to and read from this base. This message base is specified by the MSGAREA
  1994.      parameter.  The second message base, however, is subject only to writing,
  1995.      thus saving wear and tear on the media involved.  Since the primary
  1996.      message base (the one both written to and read from) is subject
  1997.      to a lot of wear and tear, this message base should be placed in a RAM
  1998.      disk. The MSGAREA parameter mentioned earlier specifies the area for the
  1999.      primary message base.  It is your responsibility to make sure a copy
  2000.      of CTDLMSG.SYS is in the RAM disk when you bring Citadel-86 up; Citadel-86
  2001.      will not do that for you.
  2002.  
  2003.         The secondary message base, since it is only written to, should reside
  2004.      on permanent media, such as a floppy.  The parameter MSG2AREA, a string
  2005.      value not responsive to formatting directives, specifies the area
  2006.      where the secondary message base should reside.  Since both message bases
  2007.      are written to simultaneously, they should remain identical.
  2008.  
  2009.         If you wish to use this option, MIRRORMSG should be set to 1;
  2010.      otherwise, it should be set to 0.  If MIRRORMSG is set to 1, then MSG2AREA
  2011.      should specify where the secondary message base should reside.  For
  2012.      instance
  2013.  
  2014.      #MIRRORMSG 1                -- yeah, why not?
  2015.      #MSG2AREA "b:msg"           -- on floppy, of course
  2016.  
  2017.      ------
  2018.      #HOLDAREA
  2019.         Citadel-86 has the optional capability to save messages inadvertently
  2020.      interrupted during composition for later completion.  The reason we say
  2021.      "optional" is the method used to save such messages is to save them as
  2022.      files on disk, and in a restricted environment such an ability may not be
  2023.      desirable. Thus, this feature is only available on systems in which
  2024.      #HOLDAREA is defined.  #HOLDAREA is another directory specification,
  2025.      exactly like those of Section 1 of CtdlCnfg.Sys.  All interrupted messages
  2026.      will be stored there until the next time the user logs in.  These files
  2027.      are currently about 8K bytes long.
  2028.  
  2029.      #HOLDAREA "hold"
  2030.  
  2031.      ------
  2032.      #sysopName
  2033.         This parameter is used to tell your system who the sysop is.  The only
  2034.      real effect of this parameter is all Mail> to sysop is automatically
  2035.      routed to the account that you specify in this parameter's string value.
  2036.      (This will also affect net Mail> to sysop.)  If you're not using this
  2037.      parameter, or the account does not exist, then Mail> to sysop will end up
  2038.      in the Aide> room.
  2039.  
  2040.      #sysopName "Me!"
  2041.  
  2042.  
  2043.  
  2044.                                     -30-
  2045.  
  2046.  
  2047.  
  2048.  
  2049.  
  2050.      ------
  2051.      #SYSOP-ARCHIVE
  2052.         This optional string parameter is used to tell your system where to
  2053.      archive the system operator's Mail.  The string specifies which file the
  2054.      Mail> should be archived to.  If the parameter #sysopName is not specified
  2055.      or if this parameter is not specified then Sysop Mail will not be
  2056.      archived.
  2057.  
  2058.      #SYSOP-ARCHIVE "c:\citadel\moocow"
  2059.  
  2060.      ------
  2061.      #EDITOR
  2062.      #EDIT-AREA
  2063.         These two parameters allow the sysop to specify a
  2064.      Sysop Editor for use at the System Console.  Full information on
  2065.      this feature is contained in OPER3.MAN Section X.  Essentially, the Sysop 
  2066.      may use the editor of his/her choice for message composition when at the 
  2067.      System Console, and these two parameters allow the System Operator to 
  2068.      specify what editor to use and where to place the temporary file.
  2069.  
  2070.         #EDITOR is the name of the editor, along with any necessary options.
  2071.      It does not obey formatting directives.  If #EDITOR is not present in 
  2072.      CtdlCnfg.Sys, then the Outside Editor is not available.
  2073.  
  2074.         #EDIT-AREA is entirely optional, and does not disable the Outside 
  2075.      Editor if it is not present.  The System Operator may use this parameter 
  2076.      to specify some area of his disk system for the placement of the 
  2077.      temporary file containing the message text other than the current drive 
  2078.      and directory (this is useful for RAM disks, etc.).
  2079.  
  2080.      #EDITOR "q"        -- qedit
  2081.      #EDIT-AREA "d:\"   -- in the root of drive D:
  2082.  
  2083.         See OPER3.MAN for full information.
  2084.  
  2085.      ------
  2086.      #CLEAN-CALLLOG
  2087.         If this parameter exists in your CtdlCnfg.Sys, then network sessions 
  2088.      will not appear in your CALLLOG.SYS.
  2089.  
  2090.      ------
  2091.      #ANONYMOUS-SESSIONS
  2092.         If this parameter exists in your CtdlCnfg.Sys sessions in which remote
  2093.      callers fail to login to be recorded in CALLLOG.SYS (if auditing is
  2094.      enabled -- see #AUDITAREA).  Normally, user sessions in which the caller
  2095.      never successfully logs in are not recorded.  This option lets you
  2096.      override this behavior.  This override does NOT apply to anonymous uses
  2097.      of the sysConsole.
  2098.  
  2099.  
  2100.  
  2101.  
  2102.  
  2103.  
  2104.  
  2105.  
  2106.  
  2107.  
  2108.  
  2109.  
  2110.                                     -31-
  2111.  
  2112.  
  2113.  
  2114.  
  2115.      ------
  2116.      #CONSOLE-TIMEOUT
  2117.         The optional parameter #CONSOLE-TIMEOUT allows you to specify CONSOLE
  2118.      timeouts.  The value you give will be interpreted as the number of seconds
  2119.      the system is quiescent in CONSOLE mode before timing out (that is,
  2120.      return to MODEM mode).  If this parameter is not present in your
  2121.      CtdlCnfg.Sys, or if its value is -1, then Console Timeouts are disabled
  2122.      on your system.  Example:
  2123.  
  2124.      #CONSOLE-TIMEOUT 600
  2125.  
  2126.      The system will timeout after 10 minutes when in Console mode.
  2127.  
  2128.      ------
  2129.      #CONSOLE-DELAY
  2130.         This parameter is for use on hardware with very fast video display
  2131.      systems, such as fast AT class machines.  Such hardware can make it
  2132.      difficult for the sysop to use their own system at the sysConsole.  This
  2133.      parameter lets you tell Citadel-86 to delay x milliseconds after each
  2134.      character when the user is at the sysConsole.  For example, to tell the
  2135.      system to hesitate for two milliseconds after each character:
  2136.  
  2137.      #CONSOLE-DELAY 2    -- 2 millisecond delay after each character
  2138.  
  2139.      This option does not affect remote users at all.  Use this parameter
  2140.      only if you find you need it.  If it's not present then there is no delay,
  2141.      of course.
  2142.  
  2143.      II.6.d Section 3 of CtdlCnfg.Sys
  2144.  
  2145.         This section covers the parameters of CtdlCnfg.Sys concerning the
  2146.      Citadel-86 networker.  We have no intention of covering the network itself
  2147.      in this section; we tried to cover that in NETWORK3.MAN, and direct you
  2148.      to there if you're interested.
  2149.  
  2150.      ------
  2151.      #NETWORK
  2152.         This parameter controls whether or not you're in the network at all.
  2153.      Set it to 1, and you are.  If it is set to 0, then you are not (initial
  2154.      setting for our virgin copy).  If you are planning to participate in the
  2155.      network, then please be sure you understand the section on the
  2156.      #event parameter, because you use #events to tell your system when
  2157.      to communicate with other systems on the networks.
  2158.  
  2159.      #NETWORK 1                  -- This system participates.
  2160.  
  2161.      ------
  2162.      #nodeDomain
  2163.         This is the name of the domain your reside in.  You may only reside
  2164.      in one domain.  This domain string is sent with each net message
  2165.      originating on your system (mostly as a way to facilitate users finding
  2166.      out how to send net mail to your system) (assuming you are netting,
  2167.      otherwise this is meaningless), and will be displayed, generically, like
  2168.      this:
  2169.  
  2170.      <date> @<time> from <author> @<nodeName> <nodeDomain display>
  2171.  
  2172.  
  2173.  
  2174.  
  2175.  
  2176.                                     -32-
  2177.  
  2178.  
  2179.  
  2180.  
  2181.  
  2182.      The reason we say "nodeDomain display" is that it's possible for some
  2183.      systems to customize the display of the nodeDomains of the messages
  2184.      passing through.  Assuming they aren't customizing, an example of a
  2185.      display using the above and assuming the #nodeDomain is "wa" (or WA --
  2186.      this is case-insensitive) would look like this:
  2187.  
  2188.         82Nov23 from Cynbe ru Taren @ODD-DATA _ wa
  2189.  
  2190.      Here's what ODD-DATA's CtdlCnfg.Sys entry for #nodeDomain would then
  2191.      look like:
  2192.  
  2193.      #nodeDomain "wa"        -- just another string parameter
  2194.  
  2195.         See NETWORK3.MAN for more information on domains in Citadel-86.
  2196.  
  2197.      ------
  2198.      #DomainDisplay
  2199.         This optional string parameter, if present, effects how domain
  2200.      designations of messages from foreign systems are displayed on your
  2201.      system.  There is a special format to this string: somewhere within the
  2202.      quotes it must contain a "%s".  This "%s" will be replaced by the domain
  2203.      of the message.  For instance, if you wanted to override the default
  2204.      behavior of putting a " _ " between the node ID and it's domain with
  2205.      having the domain being placed between brackets, you'd put
  2206.  
  2207.      #DomainDisplay " [%s]"
  2208.  
  2209.      in your CtdlCnfg.Sys.  Notice the leading space.
  2210.  
  2211.      ------
  2212.      #RouteMail
  2213.         This parameter controls whether or not you categorically refuse to 
  2214.      route network mail.  If you do choose to route mail, you can still 
  2215.      control routing via individual flags for each node; see the RoutMail 
  2216.      utility.
  2217.  
  2218.      #RouteMail  1              -- allows route mail to happen
  2219.  
  2220.      ------
  2221.      #MailHub
  2222.         This parameter lets you redirect mail which is domain oriented to
  2223.      another system which presumably has a better chance of delivering the
  2224.      Mail to the system in the domain you don't know much about.  See
  2225.      NETWORK3.MAN for far more detail than we provide here.  An example
  2226.      might be
  2227.  
  2228.      #MailHub "Data Drum"    -- current Illinois domain server
  2229.  
  2230.      ------
  2231.      #ServeDomain
  2232.         This parameter lets you decide if you want to be a domain-server.
  2233.      See NETWORK3.MAN for more detail.
  2234.  
  2235.      #ServeDomain "xx"
  2236.  
  2237.  
  2238.  
  2239.  
  2240.  
  2241.  
  2242.                                     -33-
  2243.  
  2244.  
  2245.  
  2246.  
  2247.  
  2248.      ------
  2249.      #NewNetPrivs
  2250.         This numerical parameter let's you decide if new users should 
  2251.      automatically have net privileges or not.  If 1, then they do; 0, they
  2252.      don't.
  2253.  
  2254.      #NewNetPrivs 0                     -- let's be paranoid!
  2255.  
  2256.      ------
  2257.      #NETAREA
  2258.         This string parameter specifies where all the net files will be located
  2259.      on your system.  The "net files" are CTDLNET.SYS and various temporary
  2260.      files having the suffixes ML, RFL, VTX, and SFL, plus some files with
  2261.      numeric suffixes (like R3.0).  NETAREA is just like LOGAREA, MSGAREA,
  2262.      etc., specifying drivename, if necessary, and only a subdirectory of the
  2263.      current directory of the relevant drive.
  2264.  
  2265.      #NETAREA "netstuff"         -- let's put it in a directory called
  2266.                                  -- netstuff.
  2267.  
  2268.      ------
  2269.      #DOMAINAREA
  2270.         This string parameter specifies where all the domain files will be
  2271.      located.  See NETWORK3.MAN for more information on domains.
  2272.  
  2273.      #DOMAINAREA "domains"    -- make it a separate directory from NETAREA
  2274.  
  2275.      ------
  2276.      #SHARED-ROOMS
  2277.         This numeric parameter reserves room in each node record for the number
  2278.      of shared rooms you think you'd like to share.  Each takes up 6 bytes, so
  2279.      plan according in view of the number of nodes you'll have on your node
  2280.      list and the number of rooms you might want to share with other systems.
  2281.      If you want to change this value later, use a utility!
  2282.  
  2283.      #SHARED-ROOMS 4            -- conservative
  2284.  
  2285.      ------
  2286.      #NET_RECEPT_AREA
  2287.         This parameter specifies a directory on your system containing
  2288.      all files sent to your system by some other system during
  2289.      networking, using the Send File facility (this is not the same as
  2290.      requesting files over the network).  NET_RECEPT_AREA is a string value
  2291.      unresponsive to string formatting directives, of course, and it may
  2292.      specify any directory on your system, not just a subdirectory to your
  2293.      current directory.  So, supposing you wanted to specify
  2294.      C:\CITADEL\HOLDING as the directory for incoming files from the net,
  2295.      you'd have in your CtdlCnfg.Sys
  2296.  
  2297.      #NET_RECEPT_AREA "c:\CITADEL\HOLDING" -- directory
  2298.  
  2299.      ------
  2300.      #NET_AREA_SIZE
  2301.      #MAX_NET_FILE
  2302.         These two parameters allow you to control how much space you wish to
  2303.      devote to files coming into your system from the net via the Send File
  2304.      command (i.e., other systems sending you files without you asking).
  2305.  
  2306.  
  2307.  
  2308.                                     -34-
  2309.  
  2310.  
  2311.  
  2312.  
  2313.  
  2314.         NET_AREA_SIZE allows you to tell Citadel-86 how much space to devote to
  2315.      the directory specified in NET_RECEPT_AREA.  When a system attempts to
  2316.      send you a file, Citadel-86 will get the size of the file, and then check 
  2317.      to see how much space is already being taken up by files in
  2318.      NET_RECEPT_AREA.  If the difference of NET_AREA_SIZE and the files already
  2319.      in NET_RECEPT_AREA is less than the size of the incoming file, then your
  2320.      system will not accept the file.
  2321.  
  2322.         MAX_NET_FILE allows you to control how big a file you will ever accept.
  2323.      If the size of the file being sent to you exceeds the value you specify
  2324.      here, then your system will not accept the file being sent.
  2325.  
  2326.         Both of these values are in terms of K.  So, for instance, if you only
  2327.      wanted to allow files of up 24K into your system, and only wished to
  2328.      devote up to 44K to NET_RECEPT_AREA, you'd have:
  2329.  
  2330.      #NET_AREA_SIZE 24
  2331.      #MAX_NET_FILE  44
  2332.  
  2333.      ------
  2334.      #callOutPrefix
  2335.      #callOutSuffix
  2336.         These two parameters control modem dialing during networking.  These
  2337.      are both string value parameters obeying formatting directives, and
  2338.      should be used to convey commands to the modem.  When dialing, Citadel-86
  2339.      constructs a phone number to send to the phone company, and sends the
  2340.      following to your modem:
  2341.  
  2342.       <callOutPrefix><phone#><callOutSuffix>
  2343.  
  2344.      callOutPrefix should alert the modem to dial, while callOutSuffix should
  2345.      do anything necessary to finish the dialing sequence (usually, just send
  2346.      a C/R to the modem).
  2347.  
  2348.         If you have a Hayes modem, we recommend you use the following values
  2349.      for these two parameters.
  2350.  
  2351.      #callOutPrefix "ATDT"            -- Tells a Hayes modem to dial out using
  2352.                                       -- touch tones
  2353.      #callOutSuffix "\r"              -- puts a carriage return at the end
  2354.  
  2355.         If you have a high speed modem, such as an USR HST, please see the
  2356.      next section for special variants of #callOutPrefix when you network
  2357.      with systems capable of the same high speeds.
  2358.  
  2359.      ------
  2360.      #DialOut300
  2361.      #DialOut1200
  2362.      #DialOut2400
  2363.      #DialOut4800
  2364.      #DialOut9600
  2365.      #DialOut14400
  2366.      #DialOut19200
  2367.         The new modems coming out today sometimes require different prefixes
  2368.      to dial and connect at different speeds.  For instance, the USR HST
  2369.      requires "AT&M0D..." for most dialing, but "AT&M4D..." to call USR HST
  2370.      modems at high speeds.  Therefore, Citadel-86 contains a flexible dialout
  2371.  
  2372.  
  2373.  
  2374.                                     -35-
  2375.  
  2376.  
  2377.  
  2378.  
  2379.  
  2380.      prefix scheme.  The above CtdlCnfg.Sys parameters are now available.
  2381.      They allow you to customize your dialing by letting you define special
  2382.      dial out prefixes for certain baud rates.  Those you don't define will be
  2383.      replaced by #callOutPrefix.  If you don't have a high speed modem requiring
  2384.      different dial out strings for different modem speeds, then you needn't
  2385.      worry about this section.
  2386.  
  2387.      ------
  2388.      #SCAN-NET-MESSAGES
  2389.         This CtdlCnfg.Sys parameter, if it's present, causes all incoming net
  2390.      messages to be scanned against BADWORDS.SYS.  Those which fail to meet your
  2391.      standard of decency are placed in the file DISCARD and a message will be
  2392.      left in your Aide> room.
  2393.  
  2394.      ------
  2395.      II.7 The Big Step -- Your first experience with CONFG
  2396.         You should have a complete, if only minimally, CtdlCnfg.Sys on your
  2397.      disk now (you DID save that file to disk when you were finished, didn't
  2398.      you?), so now it's time to process it into something CTDL.EXE finds
  2399.      palatable.
  2400.  
  2401.         You do this with CONFG.EXE.  First, make sure CtdlCnfg.Sys is
  2402.      located on your default disk; if you are running on a floppy-only system
  2403.      make sure you have the correct floppies in the drives.
  2404.  
  2405.         Run CONFG.  It will come up with some sort of identification banner,
  2406.      and then begin processing your CtdlCnfg.Sys.  Normally, it will echo each
  2407.      parameter as it processes it.  If it runs into a parameter it doesn't
  2408.      recognize, or a parameter value out of range, it will come to
  2409.      a stop and tell you about it (or at least it should).  Make note of the 
  2410.      problem and edit your CtdlCnfg.Sys accordingly.  If it seems critical, or
  2411.      you don't understand what's wrong, review this manual, and if that
  2412.      doesn't help, some active research (local Citadel-86 sysops, etc.) may
  2413.      be called for.  (Good luck.)
  2414.  
  2415.         Once you get past this step, CONFG will grumble with the disk for a
  2416.      moment (or two on a floppy system), and then ask you some questions.
  2417.      This first set of questions depends on whether you created the system
  2418.      directories (assuming you specified some of the system files belong in
  2419.      their own directories) or not.  If you didn't, CONFG will ask you if it
  2420.      may create the directories needed for the system files; this gives you a
  2421.      chance to make sure you didn't screw something up.  If you didn't, then
  2422.      answer 'Y' (or 'y') for each question regarding directories.
  2423.  
  2424.         Once CONFG has decided the directories are setup correctly, it
  2425.      will try to open your system files (i.e., the message file, the log file,
  2426.      etc.), and since this is the first time you've run CONFG, it won't find
  2427.      them, and therefore it will complain about this, and tell you it is
  2428.      creating each of them.
  2429.  
  2430.         This is the first and last time you should ever have to see the
  2431.      questions about the directories, or the messages about missing system
  2432.      files.  If you do ever see them again, and don't know why, you may have
  2433.      problems.
  2434.  
  2435.  
  2436.  
  2437.  
  2438.  
  2439.  
  2440.                                     -36-
  2441.  
  2442.  
  2443.  
  2444.  
  2445.  
  2446.         Next, CONFG will ask if you wish to initialize your system files.
  2447.      Since this is the first time, answer 'Y'.  NEVER answer 'Y' again unless
  2448.      you know what you're doing, because answering 'Y' tells CONFG to ERASE all
  2449.      the data in your data files.
  2450.  
  2451.         Since you answered 'Y' (this doesn't happen when you answer 'N'),
  2452.      CONFG will ask if you wish to erase and initialize your message file
  2453.      (in case you didn't mean to say yes before).  Type 'Y', and then sit back
  2454.      and watch as CONFG creates the message base.  CONFG displays the number of
  2455.      'sectors' (128 byte chunks) to clear, and then counts them off as they are
  2456.      cleared.  If you are going to have a large (300K or more) message base 
  2457.      and have fairly slow disk drive(s), this is probably the time to get that
  2458.      cup of coffee.
  2459.  
  2460.         Once it is finished with the message base, it'll ask if you wish to
  2461.      erase and initialize the room file, and then the log file.  Since you are
  2462.      still creating your system, answer 'Y' to them and watch as CONFG clears
  2463.      each file.
  2464.  
  2465.         If CONFG encounters any problems during this process, it will tell you
  2466.      about it and exit without finishing.  It's up to you to figure out what's
  2467.      wrong at this juncture.
  2468.  
  2469.         Once it finishes with these files, it tells you it is creating
  2470.      CTDLTABL.SYS (remember that file?), and exits after a few more seconds.
  2471.  
  2472.         You should now have a CTDLTABL.SYS on your current default disk, which
  2473.      also happens to be the disk your Helps reside on.
  2474.  
  2475.  
  2476.      II.8 CTDL -- That Childhood Experience
  2477.         And now we get to that long awaited moment.  DO IT.  Run CTDL, however
  2478.      you have to do it.  (Is your modem on?)
  2479.  
  2480.         If everything is put together right, you have enough memory, and
  2481.      everything is configured right, CTDL will be read in, grumble at your disk
  2482.      or disks for a moment, initialize your modem, rumble a little more,
  2483.      and then come up with YOUR welcome banner.
  2484.  
  2485.         If that's what happened, sit back!  Didn't it feel good?  Feel the
  2486.      warm, golden glow?  (Quick, knock on some wood.)  And now you should
  2487.      probably turn to OPER3.MAN, the everyday care and feeding of Citadel-86.
  2488.      The remainder of Section II covers advanced installation topics which you
  2489.      shouldn't concern yourself with right now, with the exception of Section
  2490.      II.8 which covers what to do in case of unexpected power losses and
  2491.      crashes. You should certainly read the advanced topics of Section II at
  2492.      some time in the future, because we talk about automating your
  2493.      installation with batch files, command line arguments, and other beasties;
  2494.      however, right now you're just getting used to being a Citadel-86 sysop.
  2495.  
  2496.         Delving into other topics when you're not familiar with the basic
  2497.      features of the sysop side of Citadel-86 could turn into a messy disaster
  2498.      neither you, nor we, would wish to deal with.  So turn to OPER3.MAN.
  2499.  
  2500.  
  2501.  
  2502.  
  2503.  
  2504.  
  2505.  
  2506.                                     -37-
  2507.  
  2508.  
  2509.  
  2510.  
  2511.  
  2512.         If CTDL DIDN'T come up, there are a large variety of reasons for the
  2513.      failure.  If your system seemed to make it up but came down relatively
  2514.      gracefully (i.e., left you at the system prompt), check your disks for a
  2515.      file named CRASH. It may give you (or the person you turn to for help!)
  2516.      a hint on what might be wrong. If it seems to think there's an error with
  2517.      a file, perhaps you forgot to configure MS-DOS correctly.  If CTDL itself
  2518.      complains about "no ctdltabl.sys!", then either the file isn't on your
  2519.      default disk when you called CTDL, or CONFG didn't successfully finish.
  2520.  
  2521.      II.9 When the inevitable happens
  2522.         Citadel-86, just like any other software, is not immune to such things
  2523.      as crashes, power failures, hardware failures, and the like.  When this
  2524.      happens, you must take corrective actions, because normally such
  2525.      occurrences will leave your system missing (or with a mangled version
  2526.      of) the valid version of CTDLTABL.SYS.
  2527.  
  2528.         In order to rebuild this vital file, you must run CONFG again.  CONFG
  2529.      will digest your CtdlCnfg.Sys, and then survey and summarize for CTDL the
  2530.      current contents of your data files.  Once it is finished, you may
  2531.      (usually) run CDTL.
  2532.  
  2533.         Let's go over exactly what will happen.  When you run CONFG, it should
  2534.      go through CtdlCnfg.Sys, just as it did in Section II.7, echoing each
  2535.      parameter as it encounters it.  Once finished, however, it's behavior will
  2536.      differ. It should not ask you if it may create the appropriate directories
  2537.      (since they should already exist), and it should not complain about not
  2538.      being able to find any of your system files (these should still exist,
  2539.      too!).  However, it WILL ask you if you wish to erase and initialize your
  2540.      system files.  This time reply N (with vigor!).  CONFG will immediately
  2541.      begin analyzing your data files, and after several minutes, depending on
  2542.      the size of your system, it will produce a CTDLTABL.SYS; your system will
  2543.      be fit to run again.
  2544.  
  2545.         Obviously, there are benefits to automating this process, particularly
  2546.      for handling power outages.  Consult the section on batch files and the
  2547.      section on command line options for details on effectively automating your
  2548.      system in such cases.
  2549.  
  2550.  
  2551.      II.10 Installation -- Advanced Topics
  2552.         By now you should have a pretty good feel for Citadel-86 procedures,
  2553.      but may wish to look into automating Citadel-86.  The first two
  2554.      subsections discuss subjects pertaining to that minor miracle; the third
  2555.      section will try to bring the first two together, with some representative
  2556.      examples of DOS BAT files.
  2557.  
  2558.      II.10.a Command Line options
  2559.         A 'command line option' is a string of letters you type directly
  2560.      following the program name.  Each command line option should be separated
  2561.      from the program name and any other command line option by at least one
  2562.      space.  Command line options are used to tell a program to do something it
  2563.      might not do if the option wasn't there.  In abstract, from drive C: of
  2564.      MS-DOS:
  2565.  
  2566.  
  2567.  
  2568.  
  2569.  
  2570.  
  2571.  
  2572.                                     -38-
  2573.  
  2574.  
  2575.  
  2576.  
  2577.  
  2578.      C><program name> <command line option 1> <c.l.o. 2> ...
  2579.  
  2580.         Both CONFG and CTDL have a set of command line options which you can
  2581.      use to make them do special things.  We'll treat each program separately.
  2582.  
  2583.      CONFG
  2584.         The CONFG program will respond to two options, which may appear
  2585.      together or individually on the command line.
  2586.  
  2587.         The first parameter is called ONLYPARAMS.  When CONFG finds this
  2588.      parameter on the command line, CONFG will NOT try to process your data
  2589.      files.  Instead, it will limit itself to reading and processing your
  2590.      CtdlCnfg.Sys file.  This ability is useful when you wish to change one of 
  2591.      the CtdlCnfg.Sys parameter values without going through the entire
  2592.      process of reading your data files. You MUST have a completely valid
  2593.      CTDLTABL.SYS available for CONFG to read; otherwise, this option will be
  2594.      ignored and your data files will be processed.
  2595.  
  2596.         The second parameter is any string of letters not matching any
  2597.      other command line option for CONFG.  If this 'option' (you can just use
  2598.      some random string of characters) is on the command line, then CONFG will
  2599.      not ask whether or not you wish to erase and initialize your data files.
  2600.      Instead, CONFG will assume your answer was 'N' (i.e., you simply wish
  2601.      to perform a reconstruction).  Thus, CONFG will never query the keyboard 
  2602.      for attention, and can run unattended, so long as all the data files are
  2603.      in their places.
  2604.  
  2605.      CTDL
  2606.         The CTDL program officially supports several options, and unofficially
  2607.      several more which may or may not be detailed here.  An 'official' option
  2608.      is an option we anticipate supporting for a while; an 'unofficial'
  2609.      option is an option used for experimentation, and will someday be moved
  2610.      into the CtdlCnfg.Sys parameter file (or just thrown away).
  2611.  
  2612.         The first command line option is called +netlog.  This option applies
  2613.      only to networking systems.  When employed, it will cause a log of all
  2614.      network sessions to be written to the file NETLOG.SYS in your NETAREA
  2615.      directory.
  2616.  
  2617.         +nochat completely shuts the Chat option off.  Normally, an aide can
  2618.      force a chat when Chat is turned off.  This command line option prohibits
  2619.      aides from forcing Chat when Chat is turned off.  This option does nothing
  2620.      when Chat mode is on.
  2621.  
  2622.         +vortex activates the Vortex Detection and Management feature.  For
  2623.      more information on this feature, see NETWORK3.MAN Section III.3.j.
  2624.  
  2625.         bps= is of use to those sysops using the #ISDOOR parameter.  See the 
  2626.      Operations Manual Section XII for full details on the use of Citadel-86 as
  2627.      a door.
  2628.  
  2629.         +anon causes sessions in which remote callers fail to login to be
  2630.      recorded in CALLLOG.SYS (if auditing is enabled -- see #AUDITAREA).
  2631.      Normally, user sessions in which the caller never successfully logs in
  2632.      are not recorded.  This option lets you override this behavior.  This
  2633.      override does NOT apply to anonymous uses of the sysConsole.
  2634.  
  2635.  
  2636.  
  2637.  
  2638.                                     -39-
  2639.  
  2640.  
  2641.  
  2642.  
  2643.         +vandaloff disables the vandalism checking which occurs when an
  2644.      unlogged user sends Mail to sysop.  This checking consists of seeing if
  2645.      the message contains the same character occuring in a row more than
  2646.      8 times (e.g., "iiiiiiiii").  When this option is present, the checking
  2647.      is disabled.
  2648.  
  2649.     +nomeet disables the <M>eet User and .Enter Configuration Biography
  2650.      commands.  See OPER3.MAN for more information on these commands and why
  2651.      you might wish to disable them.
  2652.  
  2653.         +wx instructs Citadel-86 to attempt to use Wxmodem rather than
  2654.      Ymodem (or Xmodem) during its network transfers.  This option is not
  2655.      recommended.
  2656.  
  2657.         +noecho disables the screen echo (also accessible as the 'E' option on
  2658.      the Sysop Menu) when Citadel-86 comes up.  This is useful for systems
  2659.      with extremely slow video displays or systems operating in public.
  2660.  
  2661.         lddelay= lets the sysop decide how long Citadel-86 will wait for
  2662.      a connection on a long distance network call.  This defaults to 60
  2663.      seconds, and the value you place after the '=' should be specified in
  2664.      seconds.  For instance, "lddelay=120" would request a 2 minute delay.
  2665.      This is useful for calls to other continents.
  2666.  
  2667.         lowfree= allows the sysop to define a minimum free space left on
  2668.      disk.  If a user attempts to upload a file to a disk that doesn't
  2669.      have at least as much free space as specified in this parameter (units
  2670.      are K) then the upload is not allowed.
  2671.  
  2672.         paranoia= specifies the number of messages a user may leave in a
  2673.      room.  If the limit is exceeded then the user loses carrier.
  2674.  
  2675.     +conpwd indicates that the sysop password should be applied at the
  2676.      system console as well as to aides calling in from remote (although no
  2677.      one need be logged in at the system console).  This, in effect, makes the
  2678.      system console almost as secure as the remote side of Citadel-86 (keeping
  2679.      in mind the mentioned caveat).  This option is inoperative if you are not
  2680.      using the remote sysop password parameter (#sysPassword).
  2681.  
  2682.         A command line option not matching any of those listed so far
  2683.      is known as the 'crash' option.  It will cause CTDL to leave a message in
  2684.      your Aide> room informing you Citadel-86 apparently came up from a
  2685.      crash at the time of the message.  This is useful for batch files.
  2686.  
  2687.      II.10.b BAT files and program termination ERRORLEVELS
  2688.         MS-DOS BAT files depend heavily on the concept of ERRORLEVELs, and we
  2689.      encourage you to read the MS-DOS manuals for a full explanation of BAT
  2690.      files. The CTDL program, on termination, will set the MS-DOS ERRORLEVEL
  2691.      level to a value you can use to write useful BAT files; you may also
  2692.      cause other ERRORLEVELS to be set, as explained earlier in this manual.  
  2693.      The values indicate the reason Citadel-86 terminated, and the ones
  2694.      reserved by Citadel-86 are discussed here.  Feel free to use other
  2695.      ERRORLEVELS at your discretion.
  2696.  
  2697.      0 -- A normal exit.  This indicates the sysop took the system down
  2698.           via e<X>it on the Sysop's menu (see OPER3.MAN for an explanation
  2699.           of the sysop menu).
  2700.      1 -- Exit due to detecting the existence of CTDLLOCK.SYS, which indicates
  2701.           this installation is already "up."  Normally, this means
  2702.           you used the <O>utside commands (see the Sysop's Manual) to go to
  2703.           the MSDOS shell, leaving Citadel-86 up but inactive, and attempted to
  2704.           bring your system back up, rather than typing 'exit'.  This is a
  2705.           failsafe so you do not accidentally bring Citadel-86 up within
  2706.  
  2707.  
  2708.  
  2709.  
  2710.  
  2711.                                     -40-
  2712.  
  2713.  
  2714.  
  2715.  
  2716.           itself.  Occasionally, you may be using <O>utside commands to do
  2717.           something when you are forced to reboot (power outage, program
  2718.           crash, etc.), in which case the CTDLLOCK.SYS file is no longer
  2719.           accurate.  In cases like these, the correct procedure is to delete
  2720.           CTDLLOCK.SYS and then attempt to bring Citadel-86 up again.
  2721.  
  2722.      2 -- This was a crash exit.  Citadel-86 is capable of recognizing a number
  2723.           of fatal internal errors; when any of them are encountered,
  2724.           Citadel-86 will hangup the current caller and immediately terminate
  2725.           with this value.  If a crash of this sort occurs, CONFG should be
  2726.           run before attempting to run CTDL again.  Some (not all) of these
  2727.           fatal errors include non-existence of CTDLTABL.SYS (very, very
  2728.           common, due to power failures), missing system files (such as the
  2729.           message file, etc.), and corrupted internal data, which indicates 
  2730.           the possibility of a bug in CTDL.  Some of these crashes will leave
  2731.           the files CRASH and AUDIT behind, which can give hints on what's
  2732.           wrong (particularly CRASH).
  2733.  
  2734.      3 -- A remote sysop exit.  Since an Aide can be given access to the sysop
  2735.           menu from remote (see Section II.6.c on the parameter #sysPassword), 
  2736.           s/he is capable of taking your system down from remote.  A number of
  2737.           sysops indicated it might be useful to distinguish between a
  2738.           sysop exit and a remote sysop exit, so this ERRORLEVEL is supported.
  2739.  
  2740.      4 -- This is a Door exit, indicating the current user has requested
  2741.           access to a Door (program) which you have provided via the #door
  2742.           parameter.  When your BAT file receives this Errorlevel, it need only
  2743.           do two things (essentially): run the program C86DOOR, and then loop
  2744.           back around to bring Citadel-86 up.
  2745.  
  2746.         One more note.  When you write a BAT file, make sure you handle
  2747.      the ERRORLEVELS in a "top to bottom" manner.  DOS will not process the
  2748.      ERRORLEVELS correctly otherwise.
  2749.  
  2750.      II.10.c Making BAT files and command line options work for you.
  2751.         No program is ever bug-free.  However, it is nice to pretend one
  2752.      is, and an effective way to pretend a particular program has achieved
  2753.      such a goal is by never having it require your attention when you are
  2754.      attending to other things.
  2755.  
  2756.         Citadel-86 tries to emulate this sort of utopian software by returning
  2757.      a value to MS-DOS when it terminates gracefully, as we described above,
  2758.      which allows you to construct BAT files handling most contingencies.
  2759.  
  2760.         Basically, we have to handle 'emergency' situations, which consist of
  2761.      coming up from a reboot and handling a graceful crash, and handling
  2762.      non-emergencies, which are coming out of C-86 in response to timeouts,
  2763.      sysop exits, remote sysop exits, and Door exits.
  2764.  
  2765.         First, let's look at the emergencies.  Typically, an emergency never
  2766.      happens at a convenient time; instead, you're off on vacation, at work,
  2767.      or feeding the cat.  Therefore, the software has to handle the emergencies
  2768.      on its own, within limits.
  2769.  
  2770.        In both of our emergency situations, the system must go through a CONFG
  2771.      call. When we looked at the command line options of CONFG, we saw a
  2772.      nonsensical argument on CONFG's command line tells it not to ask for
  2773.  
  2774.  
  2775.  
  2776.  
  2777.                                     -41-
  2778.  
  2779.  
  2780.  
  2781.  
  2782.      operator input regarding whether the system should be erased, but rather
  2783.      to simply re-analyze the data in preparation for a CTDL call.  Therefore,
  2784.      part of our BAT file strategy will contain the line
  2785.  
  2786.      CONFG gleeeeepy
  2787.  
  2788.      which we may end up placing in its own BAT file.
  2789.  
  2790.         Looking into the section on ERRORLEVELs, we should have also noticed 
  2791.      one of the events causing a graceful crash is the absence of
  2792.      a CTDLTABL.SYS file.  Thus, we can classify a power down as simply another
  2793.      graceful crash -- after we make some modifications to your boot disks
  2794.      AUTOEXEC.BAT.  But first let's look at just how we should handle these
  2795.      'graceful crashes'.
  2796.  
  2797.         We said a graceful crash produces an ERRORLEVEL of 2.  With this
  2798.      in mind, we can put in one of our BAT files some lines looking roughly
  2799.      like this:
  2800.  
  2801.      CTDL
  2802.      ...
  2803.      if ERRORLEVEL 2 Fixit
  2804.  
  2805.      Fixit, in this case, is another BAT file which will fix the system for us.
  2806.      I.e., it runs CONFG and gets the system back up on its feet.  What should
  2807.      it look like?  Well, first we want to start the file as mentioned above:
  2808.  
  2809.      CONFG Gleeepy
  2810.  
  2811.      Once CONFG finishes, we need to restart CTDL.  As it happens, MSDOS BAT
  2812.      files do not 'stack' up; if A.BAT calls B.BAT, when B finishes it does
  2813.      NOT return to A, but instead falls out to MS-DOS.  This makes it easy to
  2814.      write BAT files to accomplish our purposes.  Suppose we call our main BAT
  2815.      file RUNIT.BAT (the file containing the 'if ERRRORLEVEL 2 Fixit' line
  2816.      in it).  Then we can simply finish the FIXIT.BAT file with
  2817.  
  2818.      RUNIT CRASH
  2819.  
  2820.      We'll explain the CRASH command line option later.
  2821.  
  2822.         What about the rest of those ERRORLEVELs?  Well, let's solidify your
  2823.      RUNIT.BAT a little more.
  2824.  
  2825.      CTDL
  2826.      if ERRORLEVEL 5 goto timeout
  2827.      if ERRORLEVEL 4 goto door
  2828.      if ERRORLEVEL 3 goto remote
  2829.      if ERRORLEVEL 2 Fixit
  2830.      if ERRORLEVEL 1 goto lockfile
  2831.      if ERRORLEVEL 0 goto alldone
  2832.  
  2833.         (Note the descending order we use here.  This is necessary due to the
  2834.      method MS-DOS uses to handle 'if' statements.)  This was simple -- we just
  2835.      put off all the work.  However, most of the work is yours, because it is
  2836.      really up to you to figure out what you wish to do when your system
  2837.      times out (CtdlCnfg.Sys's #event parameter -- we simply assumed you
  2838.      used a 5 in the <depends> field of an external #event parameter) and when
  2839.      your remote sysops bring your system down.
  2840.  
  2841.  
  2842.  
  2843.                                     -42-
  2844.  
  2845.  
  2846.  
  2847.  
  2848.         So let's flesh out the rest of this sample RUNIT.BAT.
  2849.  
  2850.      :loop
  2851.      CTDL %1 ...
  2852.      shift
  2853.      if ERRORLEVEL 5 goto door
  2854.      if ERRORLEVEL 4 goto timeout
  2855.      if ERRORLEVEL 3 goto remote
  2856.      if ERRORLEVEL 2 Fixit
  2857.      if ERRORLEVEL 1 goto lockfile
  2858.      if ERRORLEVEL 0 goto alldone
  2859.      :door
  2860.      C86door
  2861.      goto loop
  2862.      :remote
  2863.      REM put here what you want remote terminations to cause to happen.  If you
  2864.      REM want to rerun CTDL, you'd have 'goto loop'.
  2865.  
  2866.      :timeout
  2867.      REM put here what you want timeouts to do (backups or whatever)
  2868.  
  2869.      ...
  2870.      REM we assume you'd want to restart Citadel-86 afterwards.
  2871.      goto loop
  2872.      :lockfile
  2873.      REM here you tried to bring Citadel-86 when it already seems to be up.
  2874.      goto unknown
  2875.      :alldone
  2876.      REM And now the sysop at the console took us down, so we'll die.
  2877.  
  2878.         Most of this should be pretty easy to understand.  The '...' on the
  2879.      CTDL command line simply means whatever options you choose to put on the
  2880.      line. However, the '%1' may be puzzling.  As the MS-DOS manual indicates,
  2881.      %1 is the first argument on the command line of this BAT file.  Now,
  2882.      let's look back at the FIXIT batch file, where we put RUNIT CRASH.  This
  2883.      will force the parameter CRASH to appear on your CTDL command line, which 
  2884.      CTDL will interpret as a 'nonsense' argument, therefore causing a 'crash'
  2885.      message to appear in your Aide> room.  Since it was the FIXIT batch file
  2886.      ultimately causing this message to appear, this is good behavior.
  2887.  
  2888.         But what of the SHIFT following the CTDL command line?  This causes
  2889.      the RUNIT command line arguments to shift 1 to the left.  Since there were
  2890.      no more arguments to RUNIT, any executions of CTDL subsequent to the SHIFT
  2891.      call, while within this BAT file, will not result in messages in the Aide>
  2892.      room.  And why might there be any more calls to CTDL after the first one?
  2893.      Look at the commands following the timeout label.
  2894.  
  2895.         This is just an example.  Have fun.
  2896.  
  2897.      II.10.d Result Code and Call Progress Detection
  2898.         One of the problems with the external serial interface of the IBM PC
  2899.      and its clones is its inability to directly detect the speed a modem
  2900.      has made connection with a caller via the RS232 interface.  Therefore,
  2901.      Citadel-86 can detect baud rates by reading the result codes most Hayes
  2902.      modems spit out.  This section details what you must do to use this
  2903.      capability.
  2904.  
  2905.  
  2906.  
  2907.  
  2908.  
  2909.                                     -43-
  2910.  
  2911.  
  2912.  
  2913.  
  2914.         There are two things you must do to attempt to use your modem's
  2915.      result codes for autobaud detection (please note some modems are so
  2916.      awful you can't use their result codes to accomplish autobaud detect).
  2917.      First, your modem must be configured to return result codes.  Typically,
  2918.      you do this using the #modemSetup parameter of CtdlCnfg.Sys, and the Hayes
  2919.      command is usually "ATQ0".  However, you should consult your modem's
  2920.      manual during these machinations and incantations.
  2921.  
  2922.         Further, you may need to decide if you want the result codes to be
  2923.      returned in Verbose mode or Non-Verbose mode (ATV1 and ATV0).  While
  2924.      Citadel-86 can use either mode if correctly configured (to be explained),
  2925.      you may have some preference.
  2926.  
  2927.         The second task is to inform Citadel what the result codes will be.
  2928.      Not all "Hayes compatible" modems return the same result codes for the
  2929.      same results.  Therefore you must provide them.  How?
  2930.  
  2931.         By constructing a simple text file named RESULTS.SYS.  It must reside
  2932.      in your #ROOMAREA (CtdlCnfg.Sys) directory, and it must be a normal MS-DOS
  2933.      text file.  Within it you place lines of the following format:
  2934.  
  2935.      #<result code identifier> <result code value>
  2936.  
  2937.      A "result code identifier" is one of a list of Citadel-86 supported
  2938.      identifiers for result codes, while "result code value" is the string
  2939.      your modem will return for that identifier.  The identifier is contained
  2940.      from the "#" sign to the first space (and there should only be one space,
  2941.      no more), while the result code value is contained from the character
  2942.      following the space to the end of line (thus allowing spaces in the result
  2943.      code value).
  2944.  
  2945.         For example, one of the identifiers is RESULT-300, which Citadel-86
  2946.      uses to identify a 300 baud caller, and most Hayes compatible modems
  2947.      we are aware of return CONNECT when a caller connects at 300 baud.  In
  2948.      order for the autobaud to use that value to identify a 300 baud caller,
  2949.      you would place the following line in your RESULTS.SYS file:
  2950.  
  2951.      #RESULT-300 CONNECT
  2952.  
  2953.      We, of course, assume you have your modem configured for Verbose
  2954.      mode.  If you are using Non-Verbose mode, and your modem returns 1 for a
  2955.      300 baud connect (a typical string for Hayes compatible modems, again),
  2956.      then you would place
  2957.  
  2958.      #RESULT-300 1
  2959.  
  2960.      in the RESULTS.SYS file.  But what if you weren't sure if your modem is
  2961.      going to be in Verbose or Non-Verbose mode during operation, for some odd
  2962.      reason?  Well, it is perfectly valid to have BOTH of those strings in
  2963.      RESULTS.SYS, and each will be used as needed!
  2964.  
  2965.      #RESULT-300 1
  2966.      #RESULT-300 CONNECT
  2967.  
  2968.  
  2969.  
  2970.  
  2971.  
  2972.  
  2973.  
  2974.  
  2975.                                     -44-
  2976.  
  2977.  
  2978.  
  2979.  
  2980.      Now that may sound somewhat trivial, but it is only an example.  A valid
  2981.      real-world example involves MNP capable modems.  Some of these modems
  2982.      return differing result codes, dependent on whether the caller is using
  2983.      an MNP modem or not.  For instance, a normal caller at 2400 baud will
  2984.      cause the modem to return CONNECT 2400, but a MNP caller at 2400 baud will
  2985.      cause the modem to return CONNECT 2400 RELIABLE.  Here is where the 
  2986.      ability to place both of those results in RESULTS.SYS (or even all 4 if
  2987.      you want to cover both Verbose and Non-Verbose modes) can come in real
  2988.      handy.
  2989.  
  2990.      #RESULT-2400 CONNECT 2400
  2991.      #RESULT-2400 CONNECT 2400 RELIABLE
  2992.  
  2993.      AUTOBAUD IDENTIFIERS
  2994.         The following are valid autobaud identifiers, and any of them may
  2995.      appear more than once with different values as desired.
  2996.  
  2997.      #RESULT-300
  2998.      #RESULT-1200
  2999.      #RESULT-2400
  3000.      #RESULT-4800
  3001.      #RESULT-9600
  3002.      #RESULT-14400
  3003.      #RESULT-19200
  3004.      #RING
  3005.  
  3006.         #RING is used to identify rings, which can be useful.  The autobaud
  3007.      identifiers are used when a caller has been detected.  Other results, such
  3008.      as the Call Progress results which are about to be discussed, are
  3009.      discarded during autobaud detection in favor of searching for Autobaud
  3010.      strings.
  3011.  
  3012.      CALL PROGRESS IDENTIFIERS
  3013.         Some modems can support call progress detection when configured
  3014.      correctly.  (Call progress detection is the ability to recognize no
  3015.      dialtone, busy signals and other such minutae.)  Citadel-86 can use those
  3016.      result codes if available to speed dialing during both networking and
  3017.      during use of the <D>ialout option of the Network menu.  The format of
  3018.      these identifiers are the same as the Autobaud identifiers.  The list of
  3019.      valid identifiers:
  3020.  
  3021.      #DIALTONE
  3022.      #NO-DIALTONE
  3023.      #OK
  3024.      #NO-CARRIER
  3025.      #BUSY
  3026.  
  3027.         The values you specify for #NO-DIALTONE, #NO-CARRIER, and #BUSY,
  3028.      when detected during callout, will cause Citadel-86 to conclude the
  3029.      call was unsuccessful and therefore abort it.  As with the Autobaud
  3030.      identifiers, you may specify any of these parameters multiple times to
  3031.      cover multiple situations.  For example, if your modem returns BUSY when
  3032.      a busy signal is detected, you would place
  3033.  
  3034.      #BUSY BUSY
  3035.  
  3036.      in your RESULTS.SYS.
  3037.  
  3038.  
  3039.  
  3040.  
  3041.                                     -45-
  3042.  
  3043.  
  3044.  
  3045.  
  3046.  
  3047.      II.10.d.1 Restrictions on Result Codes
  3048.         Unmodified Zenith Z-100s are incapable of reading and using Hayes 
  3049.      result codes due to the hardware implementation of the serial port.  
  3050.      Modifications can be made to the cable connecting the Z-100 to the modem
  3051.      and to your CtdlCnfg.Sys allowing the use of Hayes Result codes.
  3052.      Please see the special section in this manual regarding Z-100
  3053.      peculiarities.
  3054.  
  3055.      II.10.e Extreme options in CtdlCnfg.Sys
  3056.         Some of the modem I/O routines in Citadel-86 can be changed by the
  3057.      adventurous sysop via the CtdlCnfg.Sys file.  Normally, Citadel-86 uses
  3058.      built-in modem routines designed to handle the normal situations of Z-100s
  3059.      and the two COM ports of PClones.  However, they can be replaced through
  3060.      manipulation of CtdlCnfg.Sys.
  3061.  
  3062.         When do you want to use these options?  NEVER, really.  But you
  3063.      probably do when you have an unusual, but not unique, modem setup.  If you
  3064.      feel your modem connection is really, really odd, you may wish to acquire
  3065.      the source code for Citadel-86 and perform some hideous hacks of your own.
  3066.      These options are useful when you wish to do something unusual with your
  3067.      installation.
  3068.  
  3069.         All right, what ARE these 'routines,' anyways?  They came from the CP/M
  3070.      version of Citadel, where they were the entirety of Citadel's modem I/O.
  3071.      To quote the old documentation that accompanied them, they "...implemented
  3072.      a virtual machine with a single accumulator", which is another way of
  3073.      saying a primitive psuedo-assembly language was made available to
  3074.      the sysop for designing their own modem I/O.  The reason they
  3075.      exist in Citadel-86 is partly inertia and partly their flexibility: the 
  3076.      two types of machines Citadel-86 supports, Zenith Z-100s and most
  3077.      PClones, have radically different serial interfaces.  Using the
  3078.      appropriate routines saves some (probably only a trivial amount of) code
  3079.      room.
  3080.  
  3081.         OK, let's get concrete.  Each routine available to you is composed
  3082.      of two parts, the name of the routine and the code which implements it.
  3083.      Abstractly, it looks like this:
  3084.  
  3085.      #start <routine name>
  3086.      #code <instruction> <optional instruction data>
  3087.      #code <instruction> <optional instruction data>
  3088.      ...
  3089.  
  3090.         Usually, the last #code instruction will specify a RET.
  3091.  
  3092.         Here is the list of routines currently supported:
  3093.  
  3094.      HANGUP     -- This routine MUST force your modem to hangup.
  3095.      INITPORT   -- This routine should initialize your port AND your modem.
  3096.                    (NOTE: If INITPORT exists, #modemSetup should NOT exist.)
  3097.      CARRDETECT -- This routine MUST return (see the RET instruction) a 0 when
  3098.                    there is no carrier, and a non-0 value when there is
  3099.                    carrier.
  3100.      SET300     -- This routine should set your modem's port to 300 baud.
  3101.      SET1200    -- This routine should set your modem's port to 1200 baud.
  3102.  
  3103.  
  3104.  
  3105.  
  3106.  
  3107.                                     -46-
  3108.  
  3109.  
  3110.  
  3111.  
  3112.      SET2400    -- This routine should set your modem's port to 2400 baud.
  3113.      SET4800    -- This routine should set your modem's port to 4800 baud.
  3114.      SET9600    -- This routine should set your modem's port to 9600 baud.
  3115.      SET_HIGHER -- This routine should set your modem's port to your choosing
  3116.                    (this option may not be supported in the future).
  3117.      ENABLE     -- This routine must ENABLE your modem for answering the phone.
  3118.      DISABLE    -- This routine must DISABLE your modem from answering the
  3119.                    phone.
  3120.  
  3121.         The instructions available to you simulate a very simple machine with
  3122.      one accumulator and a scratch array.  You'll find the instructions crude,
  3123.      primitive, and limiting.  The scratch array is addressed from 0, and has
  3124.      40 elements.  Here they are:
  3125.  
  3126.      LOAD x   -- This instruction loads the accumulator with the value in
  3127.                  location x of memory (!).
  3128.      ANDI x   -- This instruction performs a logical AND of the accumulator
  3129.                  with x and places the result in the accumulator.
  3130.      ORI x    -- This instruction performs a logical OR of the accumulator with
  3131.                  x and places the result in the accumulator.
  3132.      XORI x   -- This instruction performs a logical XOR of the accumulator
  3133.                  with x and places the result in the accumulator.
  3134.      STORE x  -- This instruction stores the accumulator in the specified 
  3135.                  address of memory(!).
  3136.      LOADI x  -- This instruction loads the accumulator with the value of x.
  3137.      RET   x  -- This instruction forces the routine to return to the caller
  3138.                  with the value of the accumulator (in this case, 'x' is just
  3139.                  a dummy value).
  3140.      INP x    -- This instruction causes the accumulator to be loaded with the
  3141.                  value currently present at port x.
  3142.      OUTP x   -- This instruction causes the accumulator to be sent to port x.
  3143.      PAUSEI x -- This instruction causes the Citadel-86 installation to pause
  3144.                  for x/10s of a second.
  3145.      ARRAY[]= x -- This instruction stores the accumulators value in the
  3146.                    specified location of the scratch array.
  3147.      ARRAY[] x  -- This instruction loads the accumulator with the value in the
  3148.                    specified location of the scratch array.
  3149.      OUTSTRING "x" -- This instruction causes the string "x" to be sent to the
  3150.                       modem.
  3151.  
  3152.      OPR# "x" low high -- This instruction causes the string "x" to be
  3153.                           displayed, followed by a request for a number.  Low
  3154.                           and high specify the lowest and highest acceptable
  3155.                           values.  The accumulator receives the value specified
  3156.                           by the user.
  3157.  
  3158.         In SUPPORT.LZH there should be a file named PSUEDO.DOC.  It contains a
  3159.      listing of all the default routines used by Citadel-86.  If you have ANY
  3160.      plans at all for using your own routines, first examine those in
  3161.      PSUEDO.DOC, both to understand what is used for a default, and for working
  3162.      examples of how to write valid routines.
  3163.  
  3164.         And, lastly, REALLY WE HOPE YOU DON'T HAVE TO ENGAGE IN THIS SILLINESS.
  3165.  
  3166.  
  3167.  
  3168.  
  3169.  
  3170.  
  3171.  
  3172.  
  3173.                                     -47-
  3174.  
  3175.  
  3176.  
  3177.  
  3178.      III. ZENITH Z-100 NOTES
  3179.  
  3180.      III.1 Introduction
  3181.         This section contains notes concerning the hardware configuration
  3182.      of Zenith Z-100s as it applies to Citadel-86.  Most, perhaps all, of
  3183.      these contributions were contributed by Sysops using the Zenith Z-100
  3184.      as their hardware, and the authors of this manual would also like to
  3185.      take this opportunity to thank Eric Brown, System Operator of Primordial
  3186.      Ooze, for providing the serial interface code for Borland's Turbo C
  3187.      (the current C dialect in use today for Citadel-86) for Z-100 hardware.
  3188.  
  3189.      III.2 Scary but Innocuous Behaviors
  3190.         First off, whenever Citadel-86 is brought up on a Zenith Z-100, the
  3191.      System Operator will note his or her screen is decorated with a
  3192.      series of four "WILD INTERRUPT" messages.  The experienced Z-100 owner
  3193.      will recognize these as the normal prelude to a full system crash.
  3194.      However, in the case of Citadel-86, this is not true.  It would appear
  3195.      Borland's Turbo C, when compiled and linked for Large model (which
  3196.      is what we use for Citadel-86), causes the Z-100 to generate these
  3197.      messages but does no actual harm to the system.  Several Z-100 BBSs have
  3198.      been running for months now, and have suffered no problems, so, when you
  3199.      see these messages, ignore them.
  3200.  
  3201.      III.3 Result Codes
  3202.         The following was contributed by K-9, System Operator of the Dog House
  3203.      BBS, for which we thank him.
  3204.  
  3205.      Written by K-9,
  3206.      The Dog House BBS
  3207.      612/460/6056
  3208.  
  3209.      11/28/87
  3210.  
  3211.       When you are using a communications program written for the PC on a Z-100
  3212.      certain RS-232 characteristics that are different will prevent their use.
  3213.      To overcome the difficulties the communications routine used with the
  3214.      Z-100 had to be different than with a PC.  As a result when the AUTO-BAUD
  3215.      DETECT feature was released the Z-100s weren't supported.  Thanks to 
  3216.      information I had on the differences in the port and Hue, Jr.s prowess
  3217.      with the coding the feature is now supported on Z-100s.
  3218.  
  3219.       To connect an autodial modem to jack J2 and support AUTO-BAUD DETECT you
  3220.      need to know how the Z-100 RS-232 port functions.
  3221.  
  3222.       To make any autodial modem dial, you type commands which are sent out
  3223.      your port to the modem; ideally, both what you type and the verbal
  3224.      responses which come back from your modem should appear on your screen.
  3225.      While a Z-100 won't prevent commands you type from getting to your modem,
  3226.      it won't display anything from the modem until the modem indicates it has
  3227.      linked up with a remote system, ie. has Carrier Detect high.
  3228.  
  3229.       Actually, what causes a Z-100 to act this way is that a Z-100 won't let
  3230.      anyting come into it's J2 port while your modem is applying a negative
  3231.      signal to pin 8 on the port.  Data is allowed to enter only when no signal
  3232.      or a positive signal is applied to pin 8.
  3233.  
  3234.  
  3235.  
  3236.  
  3237.  
  3238.  
  3239.                                     -48-
  3240.  
  3241.  
  3242.  
  3243.  
  3244.       What is normaly attached to pin 8 is an output from the modem called
  3245.      Carrier Detect (CD or DCD, for short); carrier detect is negative when
  3246.      the modem isn't linked with a remote system, and positive when it is.
  3247.      While Citadel needs these outputs for AUTO-BAUD DETECT, the unpleasant 
  3248.      side-effects are untolerable.
  3249.  
  3250.       The solution is to modify your cable so that the modem's DCD output is no
  3251.      longer attached to pin 8 on your J2 connector, but is available to Citadel
  3252.      on pin 6, instead.  This modification won't damage anything, and won't
  3253.      have any adverse effect on performance of the computer.
  3254.  
  3255.       The procedure is different depending on whether or not the modem is a 
  3256.      Hayes Smartmodem compatible.  The exact mechanics of making this modi-
  3257.      fication depends on your cable and modem.
  3258.  
  3259.       1.  Begin with by attaching the cable between the modem and the J2 port
  3260.      at the modem end.  Open up the connector.  Find the wire that goes to 
  3261.      pin 8 (there are tiny numbers on the face of the plug).  Cut that wire
  3262.      close to the back side of the plug.  If you are using a Hayes Smartmodem
  3263.      or US Robotics Password you can skip the next two steps.
  3264.  
  3265.       2.  Find the wire that goes to pin 6.  Cut it, leaving a length of about
  3266.      1 inch still attached to the pin.
  3267.  
  3268.       3.  Strip the insulation from the end of the wire that did go to pin 8.
  3269.      Also, strip the wire still attached to pin 6.  Twist the two wires
  3270.      together and then solder (preferably) or tape them together.  Make sure no
  3271.      bare wires are exposed.
  3272.  
  3273.       4.  Re-attach the cable to the modem.  You are finished with the hardware
  3274.      modification if you have the modem switch settings set proper.  Normal
  3275.      switch setting recommendations for the modem still apply.  Only change you
  3276.      will need to make with the modem is to enable result codes which are
  3277.      normally disabled and have digits vs. verbose (word) responses enabled.
  3278.      The CtdlCnfg.Sys file as distributed with V3 supports the digit codes.
  3279.  
  3280.       You can also change the result codes via your modem initialization string
  3281.      by setting the following values:
  3282.  
  3283.       The Q value should be changed to 0 (Q0) to mean result codes will be sent
  3284.  
  3285.       The V value should be changed to 0 (V0) to send result codes as digits
  3286.  
  3287.       There are some additional changes which need to be made to the
  3288.      CtdlCnfg.Sys file to use AUTO-BAUD DETECT.
  3289.  
  3290.       Good luck!
  3291.  
  3292.       K-9
  3293.  
  3294.  
  3295.  
  3296.  
  3297.  
  3298.  
  3299.  
  3300.  
  3301.  
  3302.  
  3303.  
  3304.  
  3305.                                     -49-
  3306.  
  3307.  
  3308.  
  3309.  
  3310.  
  3311.                                 ctdlCnfg.sys
  3312.  
  3313.  
  3314.         This is the configuration file for the Citadel-86 bulletin board
  3315.      system. It is read in by confg.exe which sets up a "ctdlTabl.sys" file
  3316.      recording the configuration parameters.  (CtdlTabl.sys is read by the
  3317.      other Citadel programs.) This file must be edited to be appropriate to
  3318.      the local environment. Lines not beginning with "#" are ignored by CONFG
  3319.      and may be deleted once the file is successfully configured -- they are
  3320.      purely documentary.  For more detail, consult the CITADEL-86 SYSOP MANUAL.
  3321.  
  3322.      GENERAL STRING FORMATTING CONTROLS:
  3323.      The following are supported:
  3324.              "\n": CR-LF
  3325.              "\t": Tab character
  3326.              "\b": Non-destructive Backspace
  3327.              "\r": CR
  3328.              "\f": Formfeed
  3329.              "\"": '"'
  3330.              "\\": Backslash
  3331.              "\<xxx>": The octal* ASCII value is output
  3332.  
  3333.         SECTION 1: NECESSITIES AND MISCELLANEA
  3334.  
  3335.      SYSTEM TITLE
  3336.         nodeTitle is printed after the "Welcome to" and before the "Running..."
  3337.      lines of the banner that pops up on carrier detect, UNLESS BANNER.BLB
  3338.      exists, in which case the entire "Welcome to <nodeTitle>" line is
  3339.      replaced with the contents of BANNER.BLB.  nodeTitle is a string value
  3340.      that accepts formatting directives and goes through the Citadel
  3341.      formatter.
  3342.  
  3343. #nodeTitle "Our Name"         -- An obvious imposter
  3344.  
  3345.      SYSTEM NAME
  3346.         nodeName is purely for networking purposes.  Messages which
  3347.      originated on your system will have headers looking like:
  3348.  
  3349.            82Nov23 From Cynbe ru Taren @ODD-DATA
  3350.  
  3351.      This should be a short (for the sake of the reader!) mnemonic
  3352.      identifying your node for humans.  It does not use formatting directives.
  3353.  
  3354. #nodeName "ODD-DATA"          -- The original Citadel (kow-tow, everyone)
  3355.  
  3356.      SYSTEM ID
  3357.         nodeId is also purely for networking purposes.  Messages which
  3358.      originate on your system will be marked with the nodeId, but it will
  3359.      not normally be printed out.  It is primarily for the use of the
  3360.      networking support software, and forms a globally unique name and
  3361.      address for your system.  It consists of a country abbreviation
  3362.      followed by area code and system phone number.  This string value does not
  3363.      use formatting directives. Country abbreviation for the US is "US", for
  3364.      Canada is "CA".  (For others, see COUNTRY.DOC.)
  3365.  
  3366.  
  3367. #nodeId "US 612 470 9635"
  3368.  
  3369.  
  3370.  
  3371.                                     -50-
  3372.  
  3373.  
  3374.  
  3375.  
  3376.      SYSTEM BASEROOM
  3377.         baseRoom is the homeroom of the Citadel in operation, the place you
  3378.      go when there are no more rooms with unread messages left.  This is
  3379.      usually known as the Lobby> on most systems.  It's simply a nice,
  3380.      easy way to customize and give character to your system..
  3381.  
  3382. #baseRoom "Glops"
  3383.  
  3384.      SYSTEM BASE FLOOR
  3385.         MainFloor is the home floor of the Citadel in operation, the floor
  3386.      where baseRoom, Aide, and Mail are located.  It's another nice, easy
  3387.      way to customize your system
  3388.  
  3389. #MainFloor "Da Basement"
  3390.  
  3391.      SYSTEM ENCRYPTION SEED
  3392.         CRYPTSEED is a number used in encrypting the data files.  Change
  3393.      it once when you install the system, but not thereafter -- or you
  3394.      won't be able to read the existing files any more.
  3395.  
  3396. #CRYPTSEED 333                --
  3397.  
  3398.      UNLOGGED USER'S SCREEN WIDTH
  3399.         This parameter is used to specify an unlogged user's screen width 
  3400.      (including banner display).  If not present, defaults to 40.
  3401.  
  3402. #UNLOGGED-WIDTH 79
  3403.  
  3404.      DATA FILES SIZE: MESSAGE BASE
  3405.         MESSAGEK sizes "ctdlmsg.sys", the file message text is stored in. The
  3406.      size of this parameter together with the rate at which message text is
  3407.      entered determines message lifetime.
  3408.  
  3409. #MESSAGEK 300                 -- 300Kbyte ctdlmsg.sys
  3410.  
  3411.      DATA FILES SIZE: MESSAGES PER ROOM
  3412.         MSG-SLOTS defines the maximum number of displayable messages per room
  3413.      on your room, except for the Mail> room.
  3414.  
  3415. #MSG-SLOTS 58                 -- 58 is kind of traditional
  3416.  
  3417.      DATA FILES SIZE: MESSAGES PER MAIL ROOM
  3418.         MAIL-SLOTS defines the maximum number of displayable messages for each
  3419.      user's Mail> room.
  3420.  
  3421. #MAIL-SLOTS 58                -- Yet another tradition...
  3422.  
  3423.      DATA FILES SIZE: ROOM FILE
  3424.         MAXROOMS defines the maximum number of rooms on your system.
  3425.  
  3426. #MAXROOMS 64                  -- This is usually enough
  3427.  
  3428.  
  3429.  
  3430.  
  3431.  
  3432.  
  3433.  
  3434.  
  3435.  
  3436.  
  3437.                                     -51-
  3438.  
  3439.  
  3440.  
  3441.  
  3442.  
  3443.      DATA FILES SIZE: LOG FILE
  3444.         LOGSIZE is the number of entries that you want in your log. Once
  3445.      you've selected a log size and have configured, you may NOT shrink
  3446.      the log except by destroying the log totally. There is a utility
  3447.      available for expanding the log, called DATACHNG.
  3448.  
  3449. #LOGSIZE 180                  --
  3450.  
  3451.      **DATA FILE LOCATIONS**
  3452.         The next several parameters allow you to specify where certain system
  3453.      files are to appear on your system.  Please note that only subdirectories
  3454.      of the disk you specified are legal.  Disk specifications are legal.
  3455.  
  3456.         This parameter specifies where you want your help files located in your
  3457.      system.
  3458.  
  3459. #HELPAREA "helps"             -- All help files located in subdir
  3460.                               -- "helps"
  3461.  
  3462.         This applies to the CTDLLOG.SYS file.
  3463.  
  3464. #LOGAREA "a:log"              -- in subdir "log" on drive a:
  3465.  
  3466.         This applies to the CTDLROOM.SYS, CTDLBAD.SYS, and CTDLARCH.SYS files.
  3467.  
  3468. #ROOMAREA "system"            -- in subdir "system"
  3469.  
  3470.         This applies to the CTDLMSG.SYS file.
  3471.  
  3472. #MSGAREA ""                   -- current directory of default disk
  3473.  
  3474.         This applies to the CTDLFLR.SYS file.
  3475.  
  3476. #FLOORAREA "floors"           -- its own subdirectory for no particular reason.
  3477.  
  3478.      AIDE SCOPE:
  3479.         The AIDESEEALL parameter controls the scope that Aides have on the
  3480.      installation.  If this parameter is set to 0, then Aides are only allowed
  3481.      to see public rooms and private rooms that they are told about;
  3482.      private room creation will leave an entry in the Aide> room indicating
  3483.      that a room was created, but not the name.  An Aide at the SysConsole
  3484.      will, however, see all rooms.  If this parameter is set to 1, then all
  3485.      Aides will see all rooms on the system, public or private.
  3486.  
  3487. #AIDESEEALL 0                 -- Aides see nothing
  3488.  
  3489.      NEW USER CONTROL:
  3490.         LOGINOK controls whether users without a password can login from
  3491.      remote. If LOGINOK is 1, they may; if LOGINOK is 0, then the only place
  3492.      that new accounts may be entered is from the system console.
  3493.  
  3494. #LOGINOK 1                    -- user-established accounts
  3495.  
  3496.  
  3497.  
  3498.  
  3499.  
  3500.  
  3501.  
  3502.  
  3503.                                     -52-
  3504.  
  3505.  
  3506.  
  3507.  
  3508.  
  3509.      MESSAGE ENTRY CONTROL:
  3510.         If ENTEROK is 1, callers that are not logged in may enter messages.  If
  3511.      0, then they must login first before they can enter messages (except for
  3512.      Mail> to the Sysop.  Note that Anonymous rooms are not an exception.
  3513.  
  3514. #ENTEROK 0                    -- login first
  3515.  
  3516.      READING CONTROL:
  3517.         If READOK is 1, then unlogged callers can read messages.  If READOK is
  3518.      0, then users must login before reading messages.
  3519.  
  3520. #READOK 0                     -- login first
  3521.  
  3522.      ROOM CREATION CONTROL:
  3523.         If ROOMOK is 1 then regular folks can create new rooms, else only those
  3524.      with aide privilege can do so.
  3525.  
  3526. #ROOMOK 1                     -- general room-creation privileges
  3527.  
  3528.      MAIL CONTROL:
  3529.         If ALLMAIL is 1, all get privileges; 0 means only aides have the
  3530.      privilege.
  3531.  
  3532. #ALLMAIL 1                    -- Everybody can send mail
  3533.  
  3534.      INITIAL DOOR PRIVILEGES
  3535.         If DoorPrivs is 0, then users must ask for door privileges; otherwise, 
  3536.      they automatically have them on initial login.
  3537.  
  3538. #DoorPrivs 0                    -- A prudent policy; also, the default.
  3539.  
  3540.      INITIAL FILE PRIVS
  3541.         Use this parameter to decide if people have file download privs
  3542.      when they first logon or if they have to request them.
  3543.  
  3544. #FILE-PRIV-DEFAULT   1        -- yes
  3545.  
  3546.      COMPUTER HARDWARE TYPE:
  3547.         Setting IBM to 1 implies the system is a PClone, and to use some
  3548.      internal routines for accessing modem.  If IBM is 0, then substitute
  3549.      other special routines specific to the Z100 for accessing modem.
  3550.  
  3551. #IBM 1                        -- IBM clone
  3552.  
  3553.      COM PORT:
  3554.         The COM parameter allows the sysop who is using an IBM to select
  3555.      either COM1 or COM2 as the communications port. This parameter is
  3556.      meaningless for Z-100s.
  3557.  
  3558. #COM 1                        -- COM1 is the selection
  3559.  
  3560.  
  3561.  
  3562.  
  3563.  
  3564.  
  3565.  
  3566.  
  3567.  
  3568.  
  3569.                                     -53-
  3570.  
  3571.  
  3572.  
  3573.  
  3574.  
  3575.      SYSTEM BAUD RATES:
  3576.         SYSBAUD defines the baud rates supported by this installation.  Use
  3577.      these values to indicate what maximum baud rate your system runs at:
  3578.  
  3579.         0 - 300 baud
  3580.         1 - 1200
  3581.         2 - 2400
  3582.         3 - 4800
  3583.         4 - 9600
  3584.         5 - 14400
  3585.         6 - 19200
  3586.  
  3587. #SYSBAUD 1                    -- A 3/12 system.
  3588.  
  3589.      MODEM INITIALIZATION:
  3590.         modemSetup specifies what should be sent to the modem after
  3591.      initializing the port. While Hayes/compatibles are recommended, other
  3592.      types of modes have been successfully used with Citadel-86, such as
  3593.      TransModems.
  3594.  
  3595. #modemSetup "AT S0=1 M1"
  3596.  
  3597.      MODEM REINITIALIZATION:
  3598.         REINIT lets you reinitialize the modem after each call at the highest
  3599.      baud rate the modem will recognize.  If this parameter is not present, 
  3600.      then the modem will not be reinitialized.  Formatting directives are 
  3601.      recognized.
  3602.  
  3603. -#REINIT "AT"
  3604.  
  3605.      MODEM MANAGEMENT
  3606.         Citadel-86 normally drops DTR (for novices, on most modems this causes
  3607.      the modem to drop carrier and disables auto-answer until DTR is brought
  3608.      back up) when it doesn't want a caller calling in.  This typically
  3609.      happens when the system operator logs in at the console or the system
  3610.      is digesting messages from a network session.  You can modify this
  3611.      behavior by defining the two strings below, and they come into action
  3612.      only when the system operator logs in at the console (i.e., when you
  3613.      touch ESCape).  The first string, #DISABLE-MODEM, is sent to the modem
  3614.      when you touch the ESC, while the second, #ENABLE-MODEM, is sent when
  3615.      you put the system back into MODEM mode.  They let you do such things
  3616.      as take the modem off-hook (generate a busy signal) when you are using
  3617.      the system.  One note: the system will NOT add carriage returns to these
  3618.      strings automatically, so make sure you do!
  3619.  
  3620. -#DISABLE-MODEM "ATH1\r"    -- This would take the modem off hook
  3621. -#ENABLE-MODEM "ATH0\r"        -- This would put the modem on hook
  3622.  
  3623.  
  3624.  
  3625.  
  3626.  
  3627.  
  3628.  
  3629.  
  3630.  
  3631.  
  3632.  
  3633.  
  3634.  
  3635.                                     -54-
  3636.  
  3637.  
  3638.  
  3639.  
  3640.      PORT LOCKING
  3641.         You can have your installation "lock" the serial port at a given
  3642.      speed and let the modem handle details concerning buffering, etc.  On
  3643.      some modems such as USR HSTs, etc., this can result in a measurable
  3644.      increase in through-put; for some modems, you HAVE to do this in order
  3645.      to use the higher speeds.  HOWEVER, you have* to know what you're doing
  3646.      or you shouldn't do this.  This parameter has a numeric value which
  3647.      specifies the baud rate to lock the port at, just like #SYSBAUD.  You
  3648.      should consider using #REINIT to instruct the modem about your port
  3649.      locking, so that everytime the modem is told to hung up it is reminded
  3650.      about the port locking.
  3651.  
  3652. -#LOCK-PORT  4            -- This would lock it at 9600 baud
  3653.  
  3654.  
  3655.      OLD VIDEO
  3656.         As noted in INSTALL3.MAN, some systems don't like Citadel-86 video 
  3657.      support.  If your system doesn't, enable the following parameter.  Note 
  3658.      the lack of value after the name -- that's on purpose!
  3659.  
  3660. -#OLDVIDEO              -- disabled.
  3661.  
  3662.  
  3663.      SYSTEM SCREEN COLORS
  3664.          FOREGROUND
  3665.          BACKGROUND
  3666.          STATUS-FOREGROUND
  3667.          STATUS-BACKGROUND
  3668.         These parameters allow control of the foreground and background colors 
  3669.      of the screen, including the status bar.  See INSTALL3.MAN for a full 
  3670.      list of supported colors.  The generic setup should cause the status bar 
  3671.      to have black letters on a gray background, while the rest of the screen 
  3672.      is white letters on a black background.  See the Ease utility for an
  3673.      easy way to select colors.
  3674.  
  3675. #FOREGROUND WHITE
  3676. #BACKGROUND BLACK
  3677. #STATUS-FOREGROUND BLACK
  3678. #STATUS-BACKGROUND LIGHT GRAY
  3679.  
  3680.      STATUS BAR CLOCK
  3681.         Normally, the status bar has a clock which is updated each minute.  
  3682.      You may control its behavior by using one of the values "None", "Inuse",
  3683.      or "Always" in the #CLOCK parameter.
  3684.  
  3685. -#CLOCK Always                     -- disabled.
  3686.  
  3687.  
  3688.         SECTION 2: INTERESTING OPTIONS
  3689.  
  3690.      TIMED EVENT HANDLER:
  3691.         See the manual for this one.  Here is the generic format:
  3692.  
  3693. -#event <days> <time> <class> <type> <duration> <warning string> <depends>
  3694.  
  3695.  
  3696.  
  3697.  
  3698.  
  3699.  
  3700.  
  3701.                                     -55-
  3702.  
  3703.  
  3704.  
  3705.  
  3706.  
  3707.      REMOTE SYSOP FACILITY:
  3708.         #sysPassword specifies the file that contains a string that will act
  3709.      as the password to the remote sysop abilities.  If this parameter is not
  3710.      specified, or if the file is not found, or is unreadable, then remote
  3711.      sysop abilities are disabled.  Only Aides can access remote sysop
  3712.      abilities, and they must* know the exact password, including the case
  3713.      of the individual letters.
  3714.  
  3715. -#sysPassword "c:\pwd"        -- Inactive (note the leading hyphen)
  3716.  
  3717.  
  3718.      AUDIT:
  3719.         This parameter specifies where the files CALLLOG.SYS, FILELOG.SYS, and 
  3720.      DOORUSE.SYS end up on your system.  Note that the directory specified has
  3721.      to be a subdirectory of a current directory.
  3722.  
  3723. -#AUDITAREA ""                 -- put CALLLOG.SYS in the current directory
  3724.                                -- (inactive -- note leading hyphen)
  3725.  
  3726.      ANONYMOUS CALLERS
  3727.         This parameter, if enabled, logs ANONYMOUS callers from remote in
  3728.      your CALLLOG.SYS as "<No Login>".
  3729.  
  3730. -#ANONYMOUS-SESSIONS
  3731.  
  3732.  
  3733.      RAM DRIVE HANDLING:
  3734.         These two parameters control whether or not and where a secondary
  3735.      message file will reside.  If you use this parameter, it should
  3736.      reference a permanent media file, and the MSGAREA parameter should
  3737.      reference a RAM drive.  MSGAREA will always be both read and written to,
  3738.      while this one will only be written to; thus, this parameter should
  3739.      reference the media more sensitive to wear and tear.  MIRRORMSG should
  3740.      be 1 if you wish to use this ability; MSG2AREA then referrnces the
  3741.      location of the secondary message base.
  3742.  
  3743. #MIRRORMSG 0                  -- Turn it off for novices
  3744. #MSG2AREA ""                  -- so this is irrelevant while MIRRORMSG
  3745.                               -- is 0
  3746.  
  3747.      INTERRUPTED MESSAGE AREA:
  3748.         This parameter specifies where to save interrupted messages for
  3749.      later completion.
  3750.  
  3751. -#HOLDAREA "held"             -- inactive
  3752.  
  3753.      SYSOP MAIL ROUTING:
  3754.         This parameter specifies the account that Mail> to sysop should be
  3755.      routed to.
  3756.  
  3757.  -#sysopName "Me!"            -- inactive
  3758.  
  3759.  
  3760.  
  3761.  
  3762.  
  3763.  
  3764.  
  3765.  
  3766.  
  3767.                                     -56-
  3768.  
  3769.  
  3770.  
  3771.  
  3772.  
  3773.      OUTSIDE EDITOR:
  3774.         These parameters specify what editor the Sysop may use for System 
  3775.      Console message composition, and what area of the disk system to use for 
  3776.      temporary files.  If the first is not present, then the <O>utside Editor 
  3777.      is not available; if the second is not present, the current drive and 
  3778.      directory are used for temporary files.  See OPER3.MAN and INSTALL3.MAN 
  3779.      for full details.
  3780.  
  3781. -#EDITOR "whatever"             -- disabled!
  3782. -#EDIT-AREA ""                  -- ditto!
  3783.  
  3784.      Citadel-86 as a Door:
  3785.         This parameter lets you tell the installation that Citadel-86 is a 
  3786.      door itself.  In this situation, the modem is not initialized, etc...
  3787.      See OPER3.MAN Section XII for details.
  3788.  
  3789. -#ISDOOR                        -- disabled, no value for this parameter.
  3790.  
  3791.      CONSOLE TIMEOUT
  3792.        If you are in the habit of forgetting to logoff when you're at the
  3793.      console, thus effectively making the system useless until you notice
  3794.      your indiscretion, you can use this numeric parameter to decide how
  3795.      many SECONDS the system can be inactive while in CONSOLE mode before
  3796.      logging the person off at the system console
  3797.  
  3798. -#CONSOLE-TIMEOUT  600        -- this would be a 10 minute timeout period
  3799.  
  3800.      CONSOLE DELAY
  3801.          Having problems keeping up with Citadel-86 at the console when you're
  3802.      logged in there because the screen is just so dratted fast?  This
  3803.      parameter is just like .ECD: you can have the system pause for xxx
  3804.      milliseconds after each character is put out when the user (whoever it
  3805.      may be) is at the system console.
  3806.  
  3807. -#CONSOLE-DELAY  1        -- This would make for a one second delay
  3808.  
  3809.      SYSOP MAIL
  3810.         You can archive sysop mail.  This string parameter specifies the file
  3811.      Sysop Mail should be archived to.  This includes both Mail> to "sysop"
  3812.      and mail to the name specified in #sysopName.
  3813.  
  3814. -#SYSOP-ARCHIVE "sysop"    -- mail archive filename
  3815.  
  3816.      ANONYMOUS MAIL CONTROLS
  3817.         Anonymous mail to sysop is occasionally used to abuse systems.  This
  3818.      numeric parameter is used to control the maximum length of anonymous
  3819.      mail.  If an anonymous mail leaver exceeds that length, the user loses
  3820.      carrier and the mail, instead of being placed in mail, is placed in a
  3821.      file named ANONMAIL and a message is left in Aide informing you of this
  3822.      fact.
  3823.  
  3824. -#ANON-MAIL-LENGTH  300        -- anonymous folk will have to be brief
  3825.  
  3826.  
  3827.  
  3828.  
  3829.  
  3830.  
  3831.  
  3832.  
  3833.                                     -57-
  3834.  
  3835.  
  3836.  
  3837.  
  3838.  
  3839.      PASSWORD HACKERS
  3840.          Village Idiots being a pain?  This numeric parameter lets you tell
  3841.      the system to drop carrier on anyone who screws up their password X
  3842.      times.
  3843.  
  3844. #LOGIN-ATTEMPTS  5
  3845.  
  3846.  
  3847.         SECTION 3: NETWORK PARAMETERS
  3848.  
  3849.      NETWORK SELECT:
  3850.         You use this parameter to decide whether or not you are a networking
  3851.      system.  If you set this parameter to 0, then the rest of the parameters
  3852.      in this section are meaningless, because you are not a networking
  3853.      system.
  3854.  
  3855. #NETWORK 0                    -- Disable for novices
  3856.  
  3857.      YOUR DOMAIN
  3858.         What domain are we located in?  One to a customer, please.  See
  3859.      NETWORK3.MAN for more information on domains.
  3860.  
  3861. #nodeDomain "xx"
  3862.  
  3863.      MAIL ROUTING:
  3864.         If #RouteMail is 0 then you categorically refuse to route mail for 
  3865.      anyone to anywhere; if 1, then you will route, although you may place
  3866.      individual limits on certain systems.
  3867.  
  3868. #RouteMail 1                    -- default, too
  3869.  
  3870.      MAIL HUB
  3871.         A mail hub is a system you send all domain-oriented mail to when
  3872.      you don't know how else to get to the given domains.  This string
  3873.      parameter is the name of a system on your primary nodelist.
  3874.  
  3875. -#MailHub "xxxxx"        -- local backbone?  another backbone?
  3876.  
  3877.      NEW USER NET PRIVILEGES:
  3878.         #NewNetPrivs specifies whether or not new users automatically have
  3879.      net privileges.
  3880.  
  3881. #NewNetPrivs 0                -- Nope.
  3882.  
  3883.      DOMAIN DISPLAY
  3884.         This very optional parameter lets you customize how the domains on
  3885.      messages from other systems are displayed.  The default is shown
  3886.      in our example.  Note the '%s' MUST be present.
  3887.  
  3888. #DomainDisplay " _ %s"
  3889.  
  3890.      DOMAIN SERVING
  3891.         You want to be a domain server?  This is how you volunteer; set this
  3892.      parameter to tell what domain you want to serve, and see NETWORK3.MAN on
  3893.      administrative procedures.
  3894.  
  3895. -#ServeDomain "xx"        -- make sure you know what you're doing
  3896.  
  3897.  
  3898.  
  3899.                                     -58-
  3900.  
  3901.  
  3902.  
  3903.  
  3904.  
  3905.      NET FILES LOCATION:
  3906.         You use this parameter to specify where the various network-related
  3907.      files will be located.  It is a string parameter that you use to specify
  3908.      the drive and directory to put these files.
  3909.  
  3910. #NETAREA "c:net"              -- an example ONLY
  3911.  
  3912.      DOMAIN FILES LOCATION
  3913.         This parameter lets you decide where to put domain-related temporary
  3914.      files.  We recommend you make this different from #NETAREA.
  3915.  
  3916. #DOMAINAREA "c:domains"
  3917.  
  3918.      MAXIMUM SHARED ROOMS:
  3919.         This parameter selects the maximum number of shared rooms per system.
  3920.  
  3921. #SHARED-ROOMS 1
  3922.  
  3923.      RECEPTION AREA FOR FILES:
  3924.  
  3925.         The NET_RECEPT_AREA parameter specifies the directory that files sent
  3926.      to this installation Via the Send File feature of the net will be placed
  3927.      in.  Do NOT end it with a '\'!
  3928.  
  3929. #NET_RECEPT_AREA "C:\citadel\recept" -- Just an example
  3930.  
  3931.      RECEPTION DIRECTORY SIZE:
  3932.         The parameter NET_AREA_SIZE allows the sysop to specify how much room
  3933.      should be allocated for the NET_RECEPT_AREA parameter.  This allows the
  3934.      sysop to ensure that his system isn't swamped by files sent by other
  3935.      systems. The NET_AREA_SIZE parameter should be in K. (Remember, this
  3936.      should be in hex.)
  3937.  
  3938. #NET_AREA_SIZE 500
  3939.  
  3940.      INCOMING FILES SIZES:
  3941.         The MAX_NET_FILE parameter allows the sysop to decide how large of a
  3942.      file the system will accept from another system when the file is sent
  3943.      by the other system (this does NOT apply to Requesting a file, only to
  3944.      accepting a file Sent with the Send Net feature). This parameter is
  3945.      also in K.
  3946.  
  3947. #MAX_NET_FILE 300
  3948.  
  3949.      MODEM DIALOUT:
  3950.         callOutPrefix determines what is output to the modem prior to
  3951.      the phone number to be dialed.  It must send all commands necessary
  3952.      to put the modem into dial out mode.  Additionally, it must contain
  3953.      what is neceessary in the way of special commands dealing with PBX's,
  3954.      etc.
  3955.  
  3956.         #callOutSuffix determines what is output to the modem after
  3957.  
  3958.  
  3959.  
  3960.  
  3961.  
  3962.  
  3963.  
  3964.  
  3965.                                     -59-
  3966.  
  3967.  
  3968.  
  3969.  
  3970.  
  3971.      #callOutPrefix and the phone number has been output.  Graphically,
  3972.  
  3973.             <#callOutPrefix><phone#><#callOutSuffix>
  3974.  
  3975.      is the sequence in which data is out when the networker tries
  3976.      to dial out.  Since nothing is automatically appended to the
  3977.      number when it is being output to the modem during networking,
  3978.      the typical value for an installation using a Hayes/compatible is
  3979.  
  3980.             #callOutSuffix "\r"
  3981.  
  3982.      since Hayes/compatibles require a C/R to end a command string.
  3983.  
  3984.      This may not hold true for other brands of modems.
  3985.  
  3986. #callOutPrefix "ATDT"         -- Normal Hayes installation w/ TT.
  3987. #callOutSuffix "\r"           -- Typical Hayes suffix
  3988.  
  3989.      SPECIAL CALL OUT STRINGS
  3990.         Sometimes, for special baud rates, you want to use a different dialout
  3991.      string than what you're using #callOutPrefix.  These parameters can
  3992.      be used for that.
  3993.  
  3994. -#DialOut300 ""
  3995. -#DialOut1200 ""
  3996. -#DialOut2400 ""
  3997. -#DialOut4800 ""
  3998. -#DialOut9600 ""
  3999. -#DialOut14400 ""
  4000. -#DialOut19200 ""
  4001.  
  4002.      SCANNING INCOME NET MESSAGES
  4003.         Tired of profanity coming in on the net?  If this parameter is
  4004.      enabled, then incoming net messages are scanned against BADWORDS.SYS,
  4005.      and those failing the test are discarded with an appropriate note in
  4006.      the Aide> room.
  4007.  
  4008. -#SCAN-NET-MESSAGES
  4009.  
  4010.         SECTION 4: SPECIAL REQUIREMENT HANDLING
  4011.  
  4012.         NOTE: If you think you have an odd modem setup, such as a
  4013.      non-standard cable for allowing direct access to a high-speed pin, then
  4014.      consult the Citadel-86 SYSOP MANUAL, Section II.5.d, which details what
  4015.      abilities are available in this section of CTDLCNFG.SYS.  If that
  4016.      section is not clear, or doesn't seem to handle your particular problem,
  4017.      try to contact Hue, Jr. on the C-86 Test System (612) 470-9635 for help,
  4018.      or his successors.
  4019.  
  4020. #alldone x x                  -- end of file
  4021.  
  4022.  
  4023.  
  4024.  
  4025.  
  4026.  
  4027.  
  4028.  
  4029.  
  4030.  
  4031.                                     -60-
  4032.  
  4033.  
  4034.  
  4035.  
  4036.  
  4037.  
  4038.